One Search Console upload. Last 3 months, ending on the upload day. Do not pick custom dates.
Prompt 1 — Chat 1
You are Chat 1 of 5. This chat audits the September 2026 spam update from one last-3-months Search Console upload. Do not ask me for a date, a site, or a second export. Your deliverable is P1-spam-findings.pdf. Write the findings in simple English, then put PACKET_P1 on the last page.
Update: September 2026 spam update
Dashboard start: 24 September 2026, 09:15 US Pacific
Dashboard note: global, all languages, rollout may take up to two weeks
Completion posted: NO
Outer rollout date: 8 October 2026
File expected: last 3 months, ending on the upload day, about 9 July 2026 to 8 October 2026
Split inside that file:
- baseline: first date in the file through 26 August 2026
- before: 27 August 2026 to 23 September 2026
- rollout: 24 September 2026 to 8 October 2026
Manual actions: read the uploaded manual-action file. If absent, set MISSING.
Files: use every file I uploaded.
If a sheet has a date column, split clicks on 24 September 2026. If Pages or Queries are totals for the whole 3 months, use the daily chart to test whether the site drop starts on or after 24 September, then rank pages by clicks in that file and mark page-level timing as NOT_PROVEN. Do not invent a before/after number the file does not contain.
A loser needs a sharp click drop from 24 September onward, not a slide already visible in baseline or before. Assign every declining URL to one bucket: SPAM_PATTERN, QUALITY_OR_CORE, TECHNICAL, or OTHER. Use SPAM_PATTERN only when the drop is shared: same folder, template, or title formula; many queries lost; position worse; URL still indexed; clicks down while impressions hold. A single-page dip, a sitewide wobble, a country-only move, or a branded-demand drop is not a spam hit. This is an in-rollout reading, not a recovery reading.
Write the findings, then end with this packet. Fill every field from the files. Use NONE, MISSING, or NOT_PROVEN. Do not invent URLs or numbers.
PACKET_P1
update: September 2026 spam update
source_file: last_3_months
file_start:
file_end:
verdict: SPAM_PATTERN | MANUAL_ACTION | MIXED | NOT_SPAM
before_window: 2026-08-27 to 2026-09-23
rollout_window: 2026-09-24 to 2026-10-08
page_level_timing: DATED | NOT_PROVEN
completion_posted: NO
site:
manual_action:
lost_clicks_total:
spam_share_of_lost_clicks:
templates:
- folder_or_type | url_count | before_clicks | rollout_clicks | share_of_lost_clicks | repeated_pattern
spam_losers:
- url | template | before_clicks | rollout_clicks | click_change_pct | before_position | rollout_position | queries_lost | why_spam_pattern
do_not_touch:
- url | bucket | why
shared_traits:
- trait | evidence_from_export
fetch_queue_for_chat_2:
- url
cannot_prove:
- item
END_PACKET_P1
Save PACKET_P1 through END_PACKET_P1 as P1-SPAM-FINDINGS.txt. If the verdict is NOT_SPAM, stop.
Prompt 2 — Chat 2
You are Chat 2 of 5. This is a new chat for the September 2026 spam update. I am uploading P1-SPAM-FINDINGS.txt, built from the last 3 months of Search Console. That packet is the only URL list you may audit. Your deliverable is P2-page-audit.pdf. Explain the shared mistake in simple English, then put PACKET_P2 on the last page. Fetch every URL in fetch_queue_for_chat_2 and spam_losers. Extract title, meta description, H1, heading outline, opening, visible author, date, and main content. Do not ask me to paste a page unless the fetch fails. Do not ask me for dates or a new export.
Uploaded from Chat 1: P1-SPAM-FINDINGS.txt
Locked split already applied: before 27 August 2026 to 23 September 2026; rollout 24 September 2026 to 8 October 2026.
If PACKET_P1 verdict is NOT_SPAM, stop. Ignore do_not_touch. If page_level_timing is NOT_PROVEN, say that the page list is a 3-month ranking, not a dated drop, and do not treat every high-click URL as spam. Group the fetched pages by the templates and shared_traits in the packet. Compare the pages with each other.
Test the fetched text for scaled content abuse, doorway abuse, thin or near-duplicate templates, scraped or spun content, site reputation abuse, expired-domain mismatch only if the packet supports it, stuffing or hidden text, and empty answer blocks. Quote the page. Do not claim a policy you cannot show.
Give each fetched URL one action: KEEP, MERGE, or DROP. KEEP means a reader still needs this URL and it can be made distinct. MERGE means near-duplicate; name the one target. DROP means the page exists to catch a query; noindex or delete; Chat 3 must not rewrite it. Mark FETCH_FAILED if the page will not open, and do not classify it.
Write the audit, then end with this packet.
PACKET_P2
built_from: PACKET_P1
update: September 2026 spam update
source_file: last_3_months
pages_fetched:
- url | fetch_status | title | h1 | word_count_estimate
shared_mistake:
template_rule:
pages:
- url | action | policy | evidence_quote | merge_target_or_none
keep_queue:
- url | query_it_should_deserve | reader_job | must_remove | must_add
merge_map:
- from_url | to_url | redirect: 301
drop_list:
- url | noindex_or_delete | why
fetch_failed:
- url | error
END_PACKET_P2
Save as P2-PAGE-AUDIT.txt. Open one Chat 3 per KEEP url.
Prompt 3 — Chat 3
You are Chat 3 of 5. This is a new chat for the September 2026 spam update. The Search Console source was the last 3 months, split at 24 September 2026. I am uploading P2-PAGE-AUDIT.txt. Your deliverable is P3-fixed-draft.pdf. Explain what you removed and what you added in simple English, then put the full draft and PACKET_P3 in the PDF. Fetch the first KEEP url in keep_queue. If a URL is named below, fetch that one instead. Also look up the current results for its query. Use competing pages only to find reader jobs this page still does not finish. Do not copy their sentences, headings, or outline. Do not ask me for a date, a paste, or another Search Console file unless the fetch fails.
Uploaded from Chat 2: P2-PAGE-AUDIT.txt
URL to fix: FIRST_KEEP_URL
Read that URL's keep_queue row. shared_mistake, template_rule, reader_job, must_remove, and must_add are binding. If the row is missing, stop.
Write the replacement only after the fetch and the results check. Do not add length for its own sake. Do not stuff the query. Do not invent stats, authors, reviews, prices, or experience. Mark [NEED REAL EXAMPLE], [NEED AUTHOR], [NEED SOURCE], or [NEED URL].
End with this packet. Chat 4 will have only this file.
PACKET_P3
built_from: PACKET_P2
update: September 2026 spam update
source_file: last_3_months
url:
query:
reader_job:
shared_mistake:
must_remove:
live_page_fetched: YES | NO
serp_checked: YES | NO
removed_in_this_draft:
- item | quote_or_reason
section_map:
- h2 | reader_job_finished | our_gap_or_serp_gap
draft: |
[FULL REPLACEMENT]
cut_list:
- block | why
title_options:
-
-
-
unverified:
- marker
END_PACKET_P3
Save as P3-FIXED-DRAFT-[slug].txt. For the next kept URL, change FIRST_KEEP_URL to that URL and open a new chat.
Prompt 4 — Chat 4
You are Chat 4 of 5. This is a new chat for the September 2026 spam update. The original data was the last 3 months of Search Console. I am uploading one P3-FIXED-DRAFT file. Your deliverable is P4-recheck.pdf. Say publish, revise, or kill in simple English, with the reason, then put PACKET_P4 on the last page. Score that draft against the Prompt 2 fields inside it. Fetch the live URL only to check that the draft did not drop a useful fact. Do not ask me to paste the article, a date, or a new export. Fail the draft if the shared mistake is still visible.
Uploaded from Chat 3: P3-FIXED-DRAFT.txt
Score pass or fail, with a quote from the draft: reader_job is now the page job; must_remove items are gone; no template leftover, stuffed title, or copied block; unverified markers are still marked; any FAQ is a real next question; the useful answer from the live page survived.
End with this packet.
PACKET_P4
built_from: PACKET_P3
update: September 2026 spam update
source_file: last_3_months
url:
decision: PUBLISH | REVISE | KILL
index_instruction: KEEP_INDEX | MERGE_301 | NOINDEX
failed_checks:
- check | quote
smallest_fixes:
- fix
change_log: |
[4 lines: url, what Chat 2 found, what Chat 3 changed, index instruction]
END_PACKET_P4
If REVISE, do not publish. Open a new Chat 3 with the same P2 file and this URL. If KILL, do not rewrite again.
Save as P4-RECHECK-[slug].txt. Publish only PUBLISH rows.
Prompt 5 — Chat 5
You are Chat 5 of 5. This is a new chat for the September 2026 spam update. I am uploading P1-SPAM-FINDINGS.txt, every P4-RECHECK file, and the same last-3-months Search Console file if it is attached. Your deliverable is P5-recovery-score.pdf. Say recovered, flat, still falling, or too early in simple English, then put PACKET_P5 on the last page. Score only spam_losers from the P1 file. Match each URL to its P4 decision. Do not ask me for dates. Do not treat the sitewide average as recovery.
The last-3-months file ends on or before 8 October 2026. It does not contain the settled window of 9 October 2026 to 6 November 2026. If that later export is not attached, set batch_status to TOO_EARLY. You may still report whether the rollout side of the 3-month file matches the P4 actions. Do not call RECOVERED from this file alone.
Uploaded from Chat 1: P1-SPAM-FINDINGS.txt
Uploaded from Chat 4: every P4 file in this chat
Manual actions: read the uploaded file. If absent, set MISSING.
KEEP_INDEX can be scored only in a file that includes 9 October 2026 to 6 November 2026. MERGE_301 counts only if the target gained the queries the old URL lost. NOINDEX counts only if that URL left the index and the target did not fall. One good week is not recovery. A new falling URL in a P1 template means the template rule is not in force.
End with this packet.
PACKET_P5
built_from: PACKET_P1 and PACKET_P4
update: September 2026 spam update
source_file: last_3_months
settled_window: 2026-10-09 to 2026-11-06
batch_status: RECOVERED | FLAT | STILL_FALLING | TOO_EARLY
rows:
- url | p4_decision | index_instruction | rollout_clicks | settled_clicks | queries_returned | indexed | next_action
new_urls_in_same_template:
- url | why_it_matters
reconsideration: NOT_RELEVANT | WAIT | READY
reason:
next_30_days:
- action
END_PACKET_P5
Set READY only if PACKET_P1 manual_action was not NONE and every cited URL is PUBLISH. Otherwise NOT_RELEVANT or WAIT. Settled clicks are MISSING when the later export is not in the chat.