Technical SEO Change Request Template
Most SEO tickets stall in triage. Not because developers don't care, but because the ticket says "fix canonicals" and nothing else.
This template is the request you hand to a developer for one fix. It has the six fields that get work scheduled: evidence, fix, impact, dependency, acceptance and rollback.
It is not an audit checklist. Use the audit to find issues, then write one change request per fix.
Inside: a fill-in form, guides for evidence, impact, acceptance and rollback, a paste-ready Jira/Linear block and a fictional filled-in example.
- Format
- Editable Word .docx
- Length
- 7 variants · ~7 pages
- Price
- 100% free
- Setup
- Copy or download
Get the editable Word doc in one click.
Free · No signup · Instant download
Technical SEO Change Request Template
Technical SEO change request
One request, one fix. If you need two changes, write two requests and link them.
| Field | Entry |
|---|---|
| Request ID and title | [TSEO-014] [Remove noindex from /blog/category/ pages] |
| Requested by / date | [name, role] [date] |
| Problem (one sentence) | [what is wrong, on which template, since when] |
| Evidence | [links to URL samples, crawl export, Search Console report, rendered HTML] |
| Affected scope | [template or URL pattern], [number of URLs from your crawl] |
| Proposed fix | [exact change: tag, header, rule or setting, and where it lives] |
| Out of scope | [what this request does not change] |
| Impact | [why it matters, using your own data, see the Impact and Priority variant] |
| Priority | [P1 / P2 / P3] and why |
| Dependency | [other tickets, releases, people or access this needs first] |
| Acceptance criteria | [pass/fail checks, see the Acceptance Criteria variant] |
| Rollback plan | [how to undo it, who decides, what to watch] |
| Owner (build) / reviewer (SEO) | [developer] / [SEO] |
| Target release / recheck date | [release] / [date] |
Tracker for several requests
| ID | Issue | Evidence | Fix | Owner | Status |
|---|---|---|---|---|---|
| [TSEO-014] | [noindex on category pages] | [crawl export link] | [remove tag in prod] | [name] | [In review] |
| [TSEO-015] | [redirect chain on old URLs] | [redirect trace CSV] | [point to final URL] | [name] | [Backlog] |
Next action
- Owner: [name] - action: [estimate and schedule] by [date]
- Reviewer: [name] - action: run the acceptance checks after release
Completion check
- Every field above is filled, or marked "n/a" with a reason.
- Evidence links open for someone outside the SEO team.
- Each acceptance criterion has a clear pass or fail.
- Rollback steps name a person and a trigger.
- The developer has read it and agreed the scope.
Why it works
Developers get one scoped fix with evidence, pass/fail acceptance and a rollback plan, so SEO requests get scheduled, shipped and verified instead of stalling.
- Each request carries reproducible evidence from a crawl, Search Console and rendered HTML, so triage does not stall on whether the issue is real.
- Impact is estimated from the site's own crawl counts and Search Console click share, never from invented averages or promised gains.
- Acceptance criteria and a rollback plan are agreed before release, so the fix is tested and can be undone safely.
7 ready-to-use variants
Copy allChange Request Form (fill-in)
When to use: One form per fix: copy it, fill every field, and hand it to the developer who will build it.
Technical SEO change request
One request, one fix. If you need two changes, write two requests and link them.
| Field | Entry |
|---|---|
| Request ID and title | [TSEO-014] [Remove noindex from /blog/category/ pages] |
| Requested by / date | [name, role] [date] |
| Problem (one sentence) | [what is wrong, on which template, since when] |
| Evidence | [links to URL samples, crawl export, Search Console report, rendered HTML] |
| Affected scope | [template or URL pattern], [number of URLs from your crawl] |
| Proposed fix | [exact change: tag, header, rule or setting, and where it lives] |
| Out of scope | [what this request does not change] |
| Impact | [why it matters, using your own data, see the Impact and Priority variant] |
| Priority | [P1 / P2 / P3] and why |
| Dependency | [other tickets, releases, people or access this needs first] |
| Acceptance criteria | [pass/fail checks, see the Acceptance Criteria variant] |
| Rollback plan | [how to undo it, who decides, what to watch] |
| Owner (build) / reviewer (SEO) | [developer] / [SEO] |
| Target release / recheck date | [release] / [date] |
Tracker for several requests
| ID | Issue | Evidence | Fix | Owner | Status |
|---|---|---|---|---|---|
| [TSEO-014] | [noindex on category pages] | [crawl export link] | [remove tag in prod] | [name] | [In review] |
| [TSEO-015] | [redirect chain on old URLs] | [redirect trace CSV] | [point to final URL] | [name] | [Backlog] |
Next action
- Owner: [name] - action: [estimate and schedule] by [date]
- Reviewer: [name] - action: run the acceptance checks after release
Completion check
- Every field above is filled, or marked "n/a" with a reason.
- Evidence links open for someone outside the SEO team.
- Each acceptance criterion has a clear pass or fail.
- Rollback steps name a person and a trigger.
- The developer has read it and agreed the scope.
Writing the Evidence
When to use: Attach proof a developer can open and reproduce in minutes, so the request is not argued about in triage.
What to attach
- URL samples: 3 to 5 affected URLs, at least one per affected template, plus one URL that is fine for comparison.
- Crawl export: the filtered rows (URL, status, the failing field) and the crawl date. Link the file, don't paste 500 rows.
- Search Console report: the report name, the issue row, the example URLs it lists and the date you looked.
- Raw HTML: the server response, to show what is in the HTML before JavaScript runs.
- Rendered HTML: from URL Inspection, Test live URL, then View tested page, HTML tab.
- Headers or redirect hops when the issue is a status code, X-Robots-Tag or redirect.
Steps to reproduce
- Open [URL].
- View [source / response headers / rendered HTML].
- Expected: [what should be there].
- Actual: [what is there].
Tools that help
Run a free website audit to get the affected pages for each issue and a plain-language fix you can paste into the request.
Use Get Source Code of Webpage for raw HTML and HTTP headers, and the Redirect Checker to export each hop as CSV or JSON for the ticket.
Note: the source viewer shows HTML before JavaScript runs. For what Google rendered, use URL Inspection in Search Console.
Impact and Priority
When to use: Explain why this fix deserves sprint time using your own data, not borrowed industry percentages.
Three honest numbers
- Affected URLs: count them from your crawl, by template.
- Traffic share: in the Search Console Performance report, add a Pages filter, "URLs containing" [pattern]. Note clicks for the last [3 months] against the site total.
- Revenue or lead pages: from your own analytics, mark whether the pages convert, and say which.
Write it like this
"[340] category URLs carry [issue]. They earned [x]% of organic clicks in the last [3 months] per Search Console. [All / some] are revenue pages."
What not to write
- Promised ranking or traffic gains. You can't know them in advance.
- Industry averages with no source.
- "Google penalty" for something that is a plain indexing or crawling bug.
Priority guide
| Priority | When |
|---|---|
| P1 | Pages that should rank are blocked, noindexed, erroring or redirecting wrongly |
| P2 | Pages are indexed but signals conflict (canonicals, hreflang, internal links) |
| P3 | Hygiene with small, clear scope and no current loss |
Agree the scale with your dev lead once, then reuse it so priority is not renegotiated on every ticket.
Acceptance Criteria
When to use: Turn "fix the SEO issue" into checks anyone on the team can run and mark pass or fail.
Rules for good criteria
- Observable: a tag, header, status code or HTML element you can see.
- Specific: names the URLs or URL pattern to test.
- Binary: pass or fail, no "improved".
- Includes what must not change.
Given / When / Then format
- Given [a production URL on template X], when [Googlebot or a browser requests it], then [the response is 200 with no noindex in HTML or headers].
- Given [a staging URL], when requested, then [noindex is still present].
Ready-made checks
| Check | Pass if |
|---|---|
| Status code | Sample URLs return [200 / 301 to final URL] |
| Robots directives | No noindex in meta robots or X-Robots-Tag on [pattern] |
| Canonical | Points to [self / intended URL], absolute, one per page |
| Rendered HTML | Live test in URL Inspection shows [element] |
| Crawl | Re-crawl of [pattern] shows 0 rows with the issue |
| Search Console | Validate fix started on [date]; check status on [date] |
Search Console says validation typically takes up to about two weeks and can take longer, so put the recheck date in the request.
Rollback Plan
When to use: Decide before release how to undo the change, who can call it, and what signal triggers it.
Fill these in before release
- How to undo: [revert commit / toggle flag / restore previous robots.txt]. Keep the previous file or setting attached.
- Who decides: [name], reachable on release day.
- Trigger: [sample URLs return 5xx, wrong redirect target, staging becomes indexable, layout breaks].
- Watch window: [first 24 hours / 7 days], using [crawl, server logs, Search Console].
- After a rollback: reopen the request and add what went wrong to the evidence.
High-risk changes that always need a plan
- robots.txt edits and site-wide meta robots or X-Robots-Tag rules.
- Redirect rules and URL structure changes.
- Canonical logic in shared templates.
- Rendering changes, such as moving content into client-side JavaScript.
Remember: noindex only works if the page is not blocked in robots.txt. A rollback that adds a robots.txt block can hide the noindex from Google.
Jira/Linear Ticket Version
When to use: A plain-text block to paste into Jira, Linear, GitHub Issues or any tracker that strips tables.
Paste-ready ticket
- Title: [SEO] [short fix on template]
- Type: [Bug / Task] | Priority: [P1] | Labels: seo, [template]
- Problem: [one sentence]
- Evidence: [URL samples] | [crawl export link] | [Search Console report + date] | [rendered HTML screenshot]
- Steps to reproduce: 1) open [URL] 2) view [source/headers] 3) expected [x], actual [y]
- Proposed fix: [exact change and file/setting]
- Out of scope: [what not to touch]
- Impact: [URL count, click share, revenue pages] (source: [tool, date range])
- Dependency: [ticket IDs, release, access]
- Acceptance criteria: [ ] [check 1] [ ] [check 2] [ ] [must not change]
- Rollback: [how] | decider: [name] | trigger: [signal]
- Owner: [dev] | SEO reviewer: [name] | Recheck: [date]
Tips for trackers
- Use your tracker's checklist feature for acceptance criteria so each one is ticked off.
- Link, don't attach, large crawl exports. Note the crawl date in the link text.
- Add the SEO reviewer as a watcher so they see the release.
- If the fix spans several templates, use one parent ticket and one child per template.
Worked Example (fictional outdoor gear store)
When to use: A completed request for an invented outdoor gear store whose category pages were accidentally noindexed.
Worked example: Fernwick Outdoor category pages
Example only. The company, people, URLs and figures are invented to show what a usable, filled-in version looks like.
| Field | Entry |
|---|---|
| Request | TSEO-031: Remove noindex from production category pages |
| Problem | Since the 14 Sep theme release, all /c/ category pages send <meta name="robots" content="noindex"> in production |
| Evidence | Crawl export of 11 Oct: 212 of 212 /c/ URLs flagged noindex. Page indexing report: /c/ URLs listed under the noindex reason ("URL marked 'noindex'"). URL Inspection live test HTML shows the tag. /c/tents/ sample attached |
| Cause (dev note) | The theme reads a staging flag SEO_NOINDEX=true that was copied into the production config |
| Proposed fix | Set the flag per environment: false in production, true in staging. No template change |
| Impact | 212 category URLs. In Search Console, /c/ pages had 31% of site organic clicks in the 3 months before 14 Sep. Category pages are the main entry to product listings |
| Dependency | Config change needs DevOps access (Marta). No other release blocked |
| Acceptance | 5 sample /c/ URLs: no noindex in HTML or headers. Staging still noindex. Re-crawl shows 0 noindex rows on /c/. Validate fix started on release day |
| Rollback | Restore previous config file (attached). Decider: Jonas. Trigger: staging indexable or category pages error |
| Owner / reviewer | Marta (DevOps) / Lena (SEO) |
| Dates | Released 15 Oct, validation started 15 Oct, recheck 29 Oct |
Why this worked
- The evidence came from three places that agreed: crawl, Search Console and rendered HTML.
- The fix was one setting, not a theme rewrite, so it shipped in the next release.
- Acceptance included the staging check, so the fix did not create a new problem.
- Impact used the store's own click share, not a guess.
Next step
Run a free website audit to find indexing issues like this, with the affected pages listed. Spot-check any page as you browse with the seotools.pro SEO Extension.
How to use this template
- Pick one issue from your audit and confirm it on 3 to 5 sample URLs.
- Attach evidence: crawl rows, the Search Console report, raw and rendered HTML.
- Write the exact fix and what is out of scope.
- Estimate impact from your own crawl and Search Console data, then set priority.
- List dependencies and write pass/fail acceptance criteria.
- Agree a rollback plan, owner and reviewer with the developer.
- After release, run the acceptance checks, start validation in Search Console and set a recheck date.
Pro tips
- One fix per request. Bundled tickets get half-done and closed.
- Name the template, not just URLs. Developers fix templates.
- Include one URL that works correctly, so the difference is easy to see.
- Write impact from your own data. No promised ranking gains.
- Always say what must not change, especially staging and robots.txt.
Frequently asked questions
What is a technical SEO change request?
It is a ticket that asks developers to make one specific technical change, with the evidence, the proposed fix, why it matters, what it depends on, how to test it and how to undo it. It sits between an SEO audit and a sprint.
How is this different from a technical SEO audit checklist?
An audit checklist helps you find problems across a site. A change request hands one confirmed problem to a developer with enough detail to build, test and ship the fix.
What evidence should I attach?
Sample URLs per template, the filtered crawl export, the Search Console report and date, and the HTML. Google's URL Inspection live test shows rendered HTML under View tested page, HTML tab.
How long does Search Console take to validate a fix?
Google says validation typically takes up to about two weeks, but in some cases can take much longer. It rechecks known affected URLs. If remaining instances are found, validation fails and you can restart it.
Should I add noindex and a robots.txt block together?
No. Google says a noindex page must not be blocked by robots.txt, otherwise Googlebot never sees the tag and the URL can still appear in results.
How do I estimate impact without making up numbers?
Count affected URLs from your crawl, filter the Search Console Performance report by page to get their click share, and note from your analytics whether they are revenue or lead pages. Avoid promising ranking gains.