Plan: New blog topics from Search Console data (jkpscprep.com)

Context

We exported 6 months of search data (2026-02-04 → 2026-08-11) to search-consoles-analysis/ (GSC Queries.csv = 1,003 queries, Pages.csv = 217 pages, plus a Bing keyword report). The site earns ~13,000 clicks from ~194,000 impressions (India, 79% mobile, avg position ~5.6).

The data shows large, high-intent demand that the site currently ranks for but does not serve — mostly around the live 2026 exam cycle, exam dates, and top-of-funnel "what is JKAS" queries. This plan extracts the topic clusters, names the exact posts to write, and specifies the internal links each one must carry.

Secondary benefit: this directly supports the AdSense "low value content" remediation — these are substantial original articles, and they interlink the orphan pages the site audit flagged.

What the data says (theme clusters, whole 1,003-query set)

ThemeImpressionsClicksCTRRead
Result37,3691,7904.8%Served (best pages), needs 2026
Exam date / schedule17,9003041.7%Biggest gap — no dedicated page
Uncategorised (brand + "jkas")12,1301,015Contains the informational gap
PYQ / papers6,0165549.2%Well served
Cutoff3,098822.6%Content exists but not for 2025
Notification / vacancy1,54680.5%Gap
Informational ("what is jkas")1,27090.7%Gap
Exam pattern / optional / prep / syllabus~890 combined~18~2%Barely ranking = no content

Real-world cycle status (verified via search, must re-verify against jkpsc.nic.in before publishing): CCE Prelims 2025 held 05 Dec 2025 (result out) → Mains 2026 notification 13 Feb 2026, 80 vacancies → Mains exam held 23 Jun – 01 Jul 2026 → so the 5,286 impressions on "kas result 2026" are candidates awaiting the Mains 2026 result right now. This makes Tier 1 time-critical.

Tier 1 — Live 2026 cycle (write first; ~22,000 impressions at ~1.5% CTR)

1. jkpsc-kas-mains-result-2026JKPSC KAS Mains Result 2026

  • Keywords: kas result 2026 (5,286 imp, pos 8.5) · jkpsc kas result 2026 (2,346) · kas mains result 2026 (1,838, pos 8.6) · kas result 2026 pdf download (559) · kas result 2026 jkpsc (236, pos 11.4) · kas mains result 2026 pdf (63)
  • Intent: transactional/live. Must be a living page: status banner (awaited → declared), how to check, PDF link, roll-number guidance, cutoff context, what happens next (interview).
  • Links → /resources/jkpsc-kas-mains-marks-2024-analysis, /resources/cutoff, /blog/jkpsc-kas-mains-result-2024, /resources/interview-transcripts

2. jkpsc-kas-exam-date-2026JKPSC KAS 2026 Exam Calendar & Date Sheet (single authoritative hub)

  • Keywords: kas mains exam date 2026 (3,228) · jkpsc mains exam date 2026 (2,841) · jkpsc kas mains exam date 2026 (1,399) · jkpsc kas exam date 2026 (1,354, pos 8.7) · jkpsc kas prelims exam date 2026 (698) · jkpsc prelims exam date 2026 (608, 0 clicks, pos 10.9) · jkpsc exam date 2026 (424, 0 clicks) · kas exam date 2026 jammu and kashmir (288) · kas 2026 exam date (193) · jkas exam date 2026 (353)
  • This one cluster is ~11,000 impressions converting at ~1%. Highest-leverage single post.
  • Full stage-by-stage timeline table (notification → apply → prelims → mains → interview → final), with "last verified" date.
  • Links → post #1, post #3, /prelims, /mains

3. jkpsc-kas-2026-notification-apply-onlineJKPSC KAS 2026 Notification, Vacancies & How to Apply

  • Keywords: jkpsc kas 2025 notification (442) · jkpsc kas 2026 notification (109, pos 12) · jkpsc kas 2026 notification prelims (72) · kas last date to apply 2026 (65) · kas form date 2026 (63) · jkpsc kas last date to apply 2026 (52) · jkas notification 2025 (62) · jkpsc kas 2027 notification (41 — early demand, add a "next cycle" section)
  • Links → post #2, eligibility post (#10), /prelims

Tier 2 — Evergreen informational (top-of-funnel, ~4,000 imp at <1% CTR; builds topical authority)

4. what-is-jkas-exam-complete-guideWhat is JKAS? Complete Guide to the J&K Administrative Service

  • Keywords: jkas (1,939, pos 4.2, 14 clicks) · jkas exam (946, 3 clicks) · what is jkas (747, 4 clicks) · jkas means (292) · jkkas (98) · jk kas (74) · jkpsc cce (103)
  • ~4,100 impressions at ~0.6% CTR. Explains JKAS vs KAS vs JKPSC CCE naming, stages, posts, service profile.
  • Links → #2, #5, #6, #7, #9, /prelims, /mains, /optionals

5. jkpsc-kas-syllabus-2026JKPSC KAS Syllabus 2026 (Prelims + Mains, PDF)

  • Keywords: jkpsc syllabus · jkpsc kas syllabus 2026 pdf download · jkpsc kas syllabus pdf download 2026 · jkpsc kas syllabus official website · anthropology syllabus for jkpsc
  • Low current impressions because nothing ranks — foundational cluster piece.
  • Links → all 5 /mains/{paper}/syllabus + all 8 /optionals/{subject}/syllabus (fixes orphan pages)

6. jkpsc-kas-exam-pattern-marking-scheme — keywords: jkas exam pattern (pos 1.2), pattern/scheme/stages/marks queries. Links → #5, /prelims, /mains

7. jkpsc-kas-optional-subjects-listAll JKPSC KAS Optional Subjects & How to Choose

  • Keywords: jkpsc optional paper (64) · jkas optional paper (48) · kas optional subjects (44) · jkpsc kas optional subjects (35) · kas optional subjects list (22) · optional subjects in jkpsc kas (22) · jkpsc optional subjects (19)
  • Best internal-linking hub on the list → all 8 /optionals/{subject} + /analysis + /past-papers

8. jkpsc-kas-salary-posts-job-profile — keywords: jkas rank wise post (30, pos 9.8) · jkpsc kas rank wise post (17) · kas posts 2025 · jkpsc lecturer posts. Salary/pay-scale is high-volume generally even though thin in this export.

9. how-to-prepare-for-jkpsc-kasJKPSC KAS Preparation Strategy

  • Keywords: how to prepare for jkpsc kas (91) · how to prepare for kas exam j&k (57) · how to prepare for kas (21) · jkpsc preparation (15) · how to prepare for jkas (7)
  • Strongest conversion path into the PYQ product. Links → /prelims/{year}, review pages, /mains/*, current affairs.

10. jkpsc-kas-eligibility-criteria — age limit, attempts, qualification, domicile; kas eligibility percentage. Links → #3, #4

11. best-books-for-jkpsc-kas — keywords: jkpsc mains pyq book (19) · jkpsc kas pyq book (18) · jkpsc pyq book (16, pos 15.2) · kas mains notes. Position the site's own free PYQ archive as the core resource.

Tier 3 — Cutoff refresh + niche wins

12. jkpsc-kas-prelims-cutoff-2025kas prelims cut off (259, pos 10.2) · kas prelims cut off marks 2025 (222, 0 clicks) · kas cut off 2025 (152) · kas prelims cut off marks 2024 (100, pos 12.1). Existing cutoff pages rank well (/blog/jkas-cutoff-complete-guide: 24,635 imp) but there is no 2025-specific page. Also refresh the hub to link it.

13. slc-category-jkpsc-reservation-explainedslc category in jkpsc (79 imp, pos 10.8, 0 clicks). Explains J&K reservation categories (OM, RBA, SC, ST, EWS, SLC, ALC/IB, PSP) used in every cutoff table. Low competition, genuinely useful, links to every cutoff page.

14. jkpsc-kas-interview-personality-testkas interview result (48) · jkpsc kas interview date 2025 (17) · jkpsc kas interview (16) · kas interview questions. Links → /resources/interview-transcripts (real transcripts = strong differentiator).

Every new post must link to the existing money pages — this is also the fix for the audit's orphan/weak-internal-link findings:

  • PYQ/strategy posts → /prelims, /prelims/{year}, /prelims/{year}/{subject}/review
  • Mains posts → /mains/gs1…gs4, /mains/essay, /mains/{paper}/syllabus|past-papers
  • Optional posts → /optionals/{subject} + /analysis + /past-papers + /syllabus
  • Cutoff/result posts → /resources/cutoff, /resources/cutoff/{year}
  • Interview posts → /resources/interview-transcripts
  • Current-affairs posts → /resources/jkpsc-kas-current-affairs-compilation Cross-link Tier 1 posts to each other (date ↔ notification ↔ result) to build the 2026 cluster.

Accuracy & maintenance rules (non-negotiable)

  • Never invent dates, results, cutoffs, or vacancy numbers. Every factual claim must be verified against the official source (jkpsc.nic.in notification/PDF) at writing time. Aggregator sites (adda247/testbook/prepp) are leads, not sources.
  • Tier 1 posts are living pages: show a visible "Last verified: " line and a status label (Awaited / Declared / Postponed), and schedule re-checks.
  • Add author byline + datePublished/dateModified — the site audit flagged both as missing sitewide (E-E-A-T), and this content is career-critical for readers.

Implementation mechanics (verified against the codebase)

Post shape — entry in the blogContent map, app/blog/[slug]/page.tsx (closes at line 1784):

{ title, date: "YYYY-MM-DD", category, readTime, content, image?, metaTitle?, metaDescription? }

There is no author field (byline is hardcoded "JKPSC Prep Team" in client-page.tsx), and dateModified is just date. Body is a markdown template literal inside the TS file (react-markdown + remarkGfm + remarkBreaks); GFM tables are the house style, a leading # Title renders as <h2>, and backticks / ${ inside the body must be escaped.

Constraints that matter for the site audit: the root metadata template appends | JKPSC Prep, so metaTitle must be ≤ 47 chars; metaDescription 120–155 chars. If metaDescription is omitted it is auto-extracted from the first paragraph > 50 chars (extractDescription, lib/seo.ts:182) — so always set it explicitly.

Four required steps per post (a missed step means the post is invisible or breaks):

  1. app/blog/[slug]/page.tsx — add the blogContent entry (drives routing, metadata, static params, sitemap).
  2. app/blog/page.tsx:34-125 — add a matching object to the separate, hand-maintained blogPosts array (id, title, description, date, category, readTime), inserted at the top (rendered in array order, newest-first). This is not derived from blogContent.
  3. lib/static-paths.ts:7-18 — add the slug to blogSlugs (documented contract in SEO-RULEBOOK.md).
  4. Add the hero image to public/images/ as slug-matching kebab-case, referenced /images/... (rendered 1200×630 via next/image; alt is always the post title).

Recommended: add a relatedPosts[slug] entry in client-page.tsx:29-160 (otherwise the post gets generic fallback links), and update public/llms.txt:206-221. No update needed for app/sitemap.ts or generateStaticParams — both derive from blogContent.

Reuse generateBlogMetadata / generateBlogSchema / generateBreadcrumbSchema (lib/seo.ts). Follow BLOG-WRITING-GUIDE.md and SEO-RULEBOOK.md:210-268.

Two pre-existing bugs found while mapping (fix opportunistically, not required):

  • generateBlogSchema is called at page.tsx:1824 without image, so every post's BlogPosting schema uses the generic OG image even when post.image is set.
  • jkpsc-kas-2024-final-result-download-pdf points its hero at /results/JKPSC%20KAS%202024%20Final%20Result.jpg, but public/results/ does not exist → that image is a 404.

Verification

  • Build (npx next build) and confirm each new slug prerenders and appears in /sitemap.xml.
  • Check rendered <title> ≤ 60 chars and meta description 120–160 (site audit rules).
  • Confirm each post's internal links resolve (no 404s) and JSON-LD validates.
  • Re-run squirrel audit to confirm thin-content count drops.
  • After ~4 weeks, re-export GSC and compare CTR/position for the target queries above.
Built with LogoFlowershow