[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FBCWM057RF1WPM7P2Y1X0E":3,"skill-same:01M6FBCWM057RF1WPM7P2Y1X0E":86},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":27,"publishedAt":50,"linkOnly":51,"markdownContent":52,"markdownBody":53,"frontMatter":54,"refName":39,"commitSha":66,"skillDirectory":67,"forksCount":68,"repositoryHtmlUrl":69,"repositoryHomepageUrl":6,"ownerHtmlUrl":70,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":71,"install":72,"resources":85},"01M6FBCWM057RF1WPM7P2Y1X0E","seo-drift",null,"Snapshot a site's SEO state and detect ranking, indexation, metadata, canonical, robots, schema, and on-page regressions over time.","boisenoise\u002Fskills-collections","boisenoise","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F193180?v=4","01M6CDBDQK6BDN55ZMA6B6PKBM","01M6CDBDVSJ3JPTBYN26FZ7TZK",12,"MIT","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-seo-drift\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000019","营销推广","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000035","市场营销","PROFESSION","适用职业",[28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49],"seo","drift","seo drift","snapshot","2026","tree","canonical","studio","technical-seo","ranking","time","main","testing","page","regression","marketing","regression-testing","monitoring","search","official","gemini","safe","2026-11-10 10:12:30",false,"---\nname: seo-drift\ndescription: \"Snapshot a site's SEO state and detect ranking, indexation, metadata, canonical, robots, schema, and on-page regressions over time.\"\ncategory: marketing\nrisk: safe\nsource: https:\u002F\u002Fgithub.com\u002Fnowork-studio\u002FNotFair\u002Ftree\u002Fmain\u002Fseo\u002Fseo-drift\nsource_repo: nowork-studio\u002FNotFair\nsource_type: official\ndate_added: \"2026-07-22\"\nauthor: nowork-studio\ntags: [seo, monitoring, search-console, technical-seo, regression-testing]\ntools: [claude, cursor, gemini, codex]\nlicense: MIT\nlicense_source: https:\u002F\u002Fgithub.com\u002Fnowork-studio\u002FNotFair\u002Fblob\u002Fmain\u002FLICENSE\n---\n\n# SEO Drift Monitoring\n\n## Overview\n\nCapture a known-good SEO baseline and compare later snapshots against it so regressions become visible. The skill combines search-performance data with live on-page checks to surface ranking drops, deindexation, overwritten metadata, directive changes, and missing schema before they quietly cost traffic.\n\nThis portable version is adapted from the official [`seo-drift` skill in NotFair](https:\u002F\u002Fgithub.com\u002Fnowork-studio\u002FNotFair\u002Ftree\u002Fmain\u002Fseo\u002Fseo-drift).\n\n## When to Use\n\nUse this skill when the user asks to:\n\n- baseline or monitor a site's SEO over time;\n- check whether a migration, redesign, CMS change, or redeploy damaged SEO;\n- compare current search performance and page metadata with a prior snapshot;\n- investigate titles, descriptions, canonicals, robots directives, or schema that changed unexpectedly;\n- identify rankings or indexed pages that disappeared.\n\nFor a one-time comprehensive SEO audit with no historical comparison, use a general SEO audit skill instead.\n\n## Prerequisites\n\nBefore capturing data:\n\n1. Confirm the site and the key URLs in scope. Prefer top organic landing pages, commercial pages, and any URLs affected by a recent release.\n2. Confirm baseline or compare mode. If no prior snapshot exists, use baseline mode and explain that there is nothing to compare yet.\n3. Ask where the snapshot should be stored. Use a local `seo-drift\u002F` directory alongside the user's other audit reports only after confirming the intended project or reports location.\n4. Prefer a connected Google Search Console source for query, page, position, impression, click, and indexation signals.\n5. Use a browser or web-fetch capability for current on-page values. Respect robots directives and avoid high-volume crawling.\n\nIf Search Console is unavailable, continue only with the on-page comparison and state that ranking and indexation drift could not be measured. Never infer missing Search Console values from a live crawl.\n\n## How It Works\n\n### 1. Choose the comparison boundary\n\nRecord:\n\n- the site property and snapshot date supplied by the user or runtime;\n- whether the snapshot is a baseline or comparison;\n- the prior snapshot used for comparison, when applicable;\n- the exact URL set and search-data window;\n- any known migration, release, or CMS event that may explain expected changes.\n\nDo not invent dates or silently compare mismatched date windows.\n\n### 2. Capture the current snapshot\n\nFor the agreed URL set, collect:\n\n- **Search performance:** query and page clicks, impressions, click-through rate, and average position for a stable window;\n- **Indexation:** indexed status or coverage evidence for each key URL when the connected source exposes it;\n- **Metadata:** title, meta description, and H1;\n- **Directives:** canonical URL, robots header, and meta-robots value;\n- **Structured data:** schema types present;\n- **Content shape:** word count and another stable content fingerprint or summary useful for detecting large changes.\n\nPersist both the values and their source. Keep unavailable fields as `unknown`; do not coerce them to zero or absent.\n\n### 3. Diff against the previous baseline\n\nSurface changes in five groups:\n\n1. **Rankings:** queries that dropped by the agreed threshold or disappeared from the observed window.\n2. **Indexation:** key pages that lost indexed status or a material drop in indexed-page count.\n3. **Metadata:** titles, descriptions, or H1s that changed, became blank, or fell back to a generic template.\n4. **Directives:** canonicals that changed or disappeared, and newly introduced `noindex` directives.\n5. **Schema:** structured-data types that disappeared from pages where they previously existed.\n\nSeparate expected content changes from unexplained regressions. A changed value is evidence of drift, not proof of causation.\n\n### 4. Rank severity\n\nUse these default levels:\n\n- **Critical:** an important page is newly `noindex`, deindexed, or canonicalized to an unintended URL.\n- **Warning:** a material ranking decline, lost query visibility, blank or generic metadata, or missing schema.\n- **Info:** an expected content or metadata change with no observed search-performance harm.\n\nPut directive and indexation failures first because they can suppress the entire page regardless of content quality.\n\n### 5. Report and preserve evidence\n\nFor every reported change, include:\n\n- URL and field or metric;\n- before and after values;\n- comparison dates and data window;\n- severity and likely cause, clearly labeled as an inference;\n- the next verification or repair action.\n\nEnd by offering to create a new baseline only after the user confirms that intended changes and critical repairs are complete.\n\n## Example\n\n```text\nUser: Baseline SEO for https:\u002F\u002Fexample.com before Friday's redesign. Track \u002F, \u002Fpricing, and \u002Fdocs.\n\nAgent: I will capture a dated baseline for those three URLs, using Search Console for\nquery\u002Fpage performance and live fetches for metadata, directives, schema, and content\nshape. I will save it under the confirmed reports directory and use the same URL set and\nSearch Console window for the post-redesign comparison.\n```\n\n## Best Practices\n\n- Keep the key URL set stable so comparisons remain interpretable.\n- Compare equivalent Search Console windows and call out incomplete or delayed data.\n- Preserve raw snapshot evidence separately from the narrative report.\n- Treat missing data as unknown, not as a decline.\n- Verify a critical directive or canonical change with a second live fetch before escalating it.\n- Label likely causes as hypotheses until repository, CMS, deployment, or change-history evidence confirms them.\n\n## Limitations\n\n- Search Console data can lag and may suppress low-volume queries.\n- A live crawl cannot prove that Google has indexed a page or adopted its canonical.\n- Position changes can reflect seasonality, SERP composition, location, device mix, or competitors rather than a site regression.\n- The skill does not replace server-log analysis, full-crawl tooling, or manual review of a large migration.\n- Comparisons are unreliable when URL sets, date windows, locales, or device filters differ without normalization.\n\n## Security & Safety Notes\n\n- Write snapshots only inside the user-confirmed project or reports directory.\n- Do not store authentication tokens, cookies, or raw credentials in snapshots.\n- Use read-only Search Console access and non-mutating page fetches.\n- Avoid aggressive crawling; honor access restrictions and keep requests bounded to the agreed scope.\n- Do not change production metadata, canonicals, robots directives, or deployment settings without a separate, explicit implementation request.\n","# SEO Drift Monitoring\n\n## Overview\n\nCapture a known-good SEO baseline and compare later snapshots against it so regressions become visible. The skill combines search-performance data with live on-page checks to surface ranking drops, deindexation, overwritten metadata, directive changes, and missing schema before they quietly cost traffic.\n\nThis portable version is adapted from the official [`seo-drift` skill in NotFair](https:\u002F\u002Fgithub.com\u002Fnowork-studio\u002FNotFair\u002Ftree\u002Fmain\u002Fseo\u002Fseo-drift).\n\n## When to Use\n\nUse this skill when the user asks to:\n\n- baseline or monitor a site's SEO over time;\n- check whether a migration, redesign, CMS change, or redeploy damaged SEO;\n- compare current search performance and page metadata with a prior snapshot;\n- investigate titles, descriptions, canonicals, robots directives, or schema that changed unexpectedly;\n- identify rankings or indexed pages that disappeared.\n\nFor a one-time comprehensive SEO audit with no historical comparison, use a general SEO audit skill instead.\n\n## Prerequisites\n\nBefore capturing data:\n\n1. Confirm the site and the key URLs in scope. Prefer top organic landing pages, commercial pages, and any URLs affected by a recent release.\n2. Confirm baseline or compare mode. If no prior snapshot exists, use baseline mode and explain that there is nothing to compare yet.\n3. Ask where the snapshot should be stored. Use a local `seo-drift\u002F` directory alongside the user's other audit reports only after confirming the intended project or reports location.\n4. Prefer a connected Google Search Console source for query, page, position, impression, click, and indexation signals.\n5. Use a browser or web-fetch capability for current on-page values. Respect robots directives and avoid high-volume crawling.\n\nIf Search Console is unavailable, continue only with the on-page comparison and state that ranking and indexation drift could not be measured. Never infer missing Search Console values from a live crawl.\n\n## How It Works\n\n### 1. Choose the comparison boundary\n\nRecord:\n\n- the site property and snapshot date supplied by the user or runtime;\n- whether the snapshot is a baseline or comparison;\n- the prior snapshot used for comparison, when applicable;\n- the exact URL set and search-data window;\n- any known migration, release, or CMS event that may explain expected changes.\n\nDo not invent dates or silently compare mismatched date windows.\n\n### 2. Capture the current snapshot\n\nFor the agreed URL set, collect:\n\n- **Search performance:** query and page clicks, impressions, click-through rate, and average position for a stable window;\n- **Indexation:** indexed status or coverage evidence for each key URL when the connected source exposes it;\n- **Metadata:** title, meta description, and H1;\n- **Directives:** canonical URL, robots header, and meta-robots value;\n- **Structured data:** schema types present;\n- **Content shape:** word count and another stable content fingerprint or summary useful for detecting large changes.\n\nPersist both the values and their source. Keep unavailable fields as `unknown`; do not coerce them to zero or absent.\n\n### 3. Diff against the previous baseline\n\nSurface changes in five groups:\n\n1. **Rankings:** queries that dropped by the agreed threshold or disappeared from the observed window.\n2. **Indexation:** key pages that lost indexed status or a material drop in indexed-page count.\n3. **Metadata:** titles, descriptions, or H1s that changed, became blank, or fell back to a generic template.\n4. **Directives:** canonicals that changed or disappeared, and newly introduced `noindex` directives.\n5. **Schema:** structured-data types that disappeared from pages where they previously existed.\n\nSeparate expected content changes from unexplained regressions. A changed value is evidence of drift, not proof of causation.\n\n### 4. Rank severity\n\nUse these default levels:\n\n- **Critical:** an important page is newly `noindex`, deindexed, or canonicalized to an unintended URL.\n- **Warning:** a material ranking decline, lost query visibility, blank or generic metadata, or missing schema.\n- **Info:** an expected content or metadata change with no observed search-performance harm.\n\nPut directive and indexation failures first because they can suppress the entire page regardless of content quality.\n\n### 5. Report and preserve evidence\n\nFor every reported change, include:\n\n- URL and field or metric;\n- before and after values;\n- comparison dates and data window;\n- severity and likely cause, clearly labeled as an inference;\n- the next verification or repair action.\n\nEnd by offering to create a new baseline only after the user confirms that intended changes and critical repairs are complete.\n\n## Example\n\n```text\nUser: Baseline SEO for https:\u002F\u002Fexample.com before Friday's redesign. Track \u002F, \u002Fpricing, and \u002Fdocs.\n\nAgent: I will capture a dated baseline for those three URLs, using Search Console for\nquery\u002Fpage performance and live fetches for metadata, directives, schema, and content\nshape. I will save it under the confirmed reports directory and use the same URL set and\nSearch Console window for the post-redesign comparison.\n```\n\n## Best Practices\n\n- Keep the key URL set stable so comparisons remain interpretable.\n- Compare equivalent Search Console windows and call out incomplete or delayed data.\n- Preserve raw snapshot evidence separately from the narrative report.\n- Treat missing data as unknown, not as a decline.\n- Verify a critical directive or canonical change with a second live fetch before escalating it.\n- Label likely causes as hypotheses until repository, CMS, deployment, or change-history evidence confirms them.\n\n## Limitations\n\n- Search Console data can lag and may suppress low-volume queries.\n- A live crawl cannot prove that Google has indexed a page or adopted its canonical.\n- Position changes can reflect seasonality, SERP composition, location, device mix, or competitors rather than a site regression.\n- The skill does not replace server-log analysis, full-crawl tooling, or manual review of a large migration.\n- Comparisons are unreliable when URL sets, date windows, locales, or device filters differ without normalization.\n\n## Security & Safety Notes\n\n- Write snapshots only inside the user-confirmed project or reports directory.\n- Do not store authentication tokens, cookies, or raw credentials in snapshots.\n- Use read-only Search Console access and non-mutating page fetches.\n- Avoid aggressive crawling; honor access restrictions and keep requests bounded to the agreed scope.\n- Do not change production metadata, canonicals, robots directives, or deployment settings without a separate, explicit implementation request.\n",{"name":5,"risk":49,"tags":55,"tools":57,"author":61,"source":62,"license":14,"category":43,"date_added":63,"description":7,"source_repo":64,"source_type":47,"license_source":65},[28,45,56,36,44],"search-console",[58,59,48,60],"claude","cursor","codex","nowork-studio","https:\u002F\u002Fgithub.com\u002Fnowork-studio\u002FNotFair\u002Ftree\u002Fmain\u002Fseo\u002Fseo-drift","2026-07-22","nowork-studio\u002FNotFair","https:\u002F\u002Fgithub.com\u002Fnowork-studio\u002FNotFair\u002Fblob\u002Fmain\u002FLICENSE","7bf2279c8a65758319526a721d5c4b75683aec9c","skills\u002Fantigravity-seo-drift",3,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections","https:\u002F\u002Fgithub.com\u002Fboisenoise","2026-11-12 14:21:24",{"source":8,"skillName":5,"commands":73,"prompt":83,"zipAvailable":84},[74,77,80],{"tool":75,"command":76},"npx","npx skills add boisenoise\u002Fskills-collections --skill seo-drift",{"tool":78,"command":79},"bunx","bunx skills add boisenoise\u002Fskills-collections --skill seo-drift",{"tool":81,"command":82},"pnpm","pnpm dlx skills add boisenoise\u002Fskills-collections --skill seo-drift","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-seo-drift\u002FSKILL.md",true,[],[87,114,140,163,181,204],{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":91,"licenseFileUrl":92,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":50},"01M6WNH92BHVFXHGPDZCPJ0AG0","web-access","Use Treg for public web or platform data only when existing search, browser and connected tools cannot cover the task, with explicit cost and data boundaries.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-web-access\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-web-access\u002FSKILL.md",[],[96,97,98,47,99,100,46,101,102,103,104,105,106,107,108,109,110,111,112,113,32],"web","access","web access","development","browser","data","Tools","read","fetch","only","youtube","free tools","platform","critical","free","cover","normal","when",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":91,"licenseFileUrl":118,"sourceHtmlUrl":119,"categories":120,"keywords":124,"publishedAt":50},"01M6WNF9XAYAB2CZDDJBAKNM93","treg","Use the Treg CLI or MCP catalog to discover, price and call authorized external tools with team-scoped credentials and a user-approved budget.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-treg\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-treg\u002FSKILL.md",[121],{"categoryNo":122,"categoryName":123,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[116,125,126,127,47,99,128,102,129,130,131,132,133,134,135,109,136,137,138,139,32],"MCP","cli","github","license","Budget","credentials","team","catalog","use","call","discover","external tools","with","scoped","blob",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":91,"licenseFileUrl":144,"sourceHtmlUrl":145,"categories":146,"keywords":150,"publishedAt":50},"01M6WN93MEAZ4E41DYAHJRPHQT","recruit","Turn a job description into an evidence-linked candidate shortlist through Treg, with job-related ranking and optional authorized business contact enrichment.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-recruit\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-recruit\u002FSKILL.md",[147],{"categoryNo":148,"categoryName":149,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000038","人力资源",[142,127,47,128,151,152,153,154,155,156,109,37,157,158,137,159,160,161,162,139,116,32],"https","email","enrichment","business","evidence","phone","post","job description","for","person","candidate","reason",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":91,"licenseFileUrl":167,"sourceHtmlUrl":168,"categories":169,"keywords":170,"publishedAt":50},"01M6WN8R5RXSMHM9B4D9FAFX42","rea-growth","Analyze a company’s public growth and content through Treg, distinguish observations from hypotheses, and produce an evidence-linked playbook within an approved budget.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-rea-growth\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-rea-growth\u002FSKILL.md",[],[171,172,173,127,47,128,174,175,151,176,129,43,177,178,155,109,179,180,139,116,32],"growth","rea","rea growth","produce","content","playbook","analyze","public","observations","company",{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":91,"licenseFileUrl":185,"sourceHtmlUrl":186,"categories":187,"keywords":188,"publishedAt":50},"01M6WN2EVE3RQRGWAKBT4S7YT2","make-ugc","Create original AI UGC-style product videos through Treg: research hooks, approve a licensed presenter and voice, generate clips, add captions and report costs.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-make-ugc\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-make-ugc\u002FSKILL.md",[],[189,190,127,191,47,192,128,193,194,195,196,197,109,198,199,200,201,202,203,139],"make","make ugc","research","create","Video","Captions","ads","short","hooks","head","style","niche","trending","talking-head","approve",{"skillNo":205,"name":206,"nameZh":6,"description":207,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":91,"licenseFileUrl":208,"sourceHtmlUrl":209,"categories":210,"keywords":211,"publishedAt":50},"01M6WN10ARAA63Y8K1YNGXJ2RM","lead-signals","Find and qualify public buying signals through Treg, rank fitting business accounts and optionally enrich authorized business contact information.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-lead-signals\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-lead-signals\u002FSKILL.md",[],[212,213,214,127,47,128,215,216,154,217,218,109,219,220,221,222,223,224,225,139],"signals","lead","lead signals","how","find","ready","as","how to","qualify","people","information","enrich","changes","funding"]