This report records the changes made after the original SEO audit. Initial measurements below come from the local production export, not Google indexing data or real-user Core Web Vitals. Live deployment and performance results are recorded separately when available.
What changed
- A crawlable catalogue:
/jobs/and/jobs/page/2/onward link to all current vacancies. Interactive filters moved to/search/, which remains noindex. Existing job-search query links continue into the search tool. - Useful initial HTML: search controls, job cards and both Offer Lens editors render before JavaScript. Query handling is isolated from the useful page content, addressing the previous large hydration layout shifts.
- Loading across the site: delayed navigation skeletons cover page transitions, with layouts for articles, job detail pages, catalogue pages and tools. Query-dependent search, personalised Compass results and saved-vacancy refreshes have data-loading skeletons. Cached routes stay immediate; reduced-motion settings are respected.
- Smaller assets and page data: optimized logo and favicon derivatives preserve the original uploaded files. Fonts are hosted locally. Search, Compass and Saved share a hashed discovery index instead of embedding the whole collection into every HTML page.
- Content and trust: country headings now state their search intent. Ten market-and-field pages are generated where inventory supports them. Guides gained practical examples, visible revision dates, article images and breadcrumbs. Contact, editorial and privacy pages explain the actual service and its limits.
- Feed and schema quality: matching substantial descriptions can identify duplicate same-city listings without merging different roles or cities. Named and double-escaped entities are decoded. Recently collected, explicitly active employer roles are no longer excluded merely for being older than 60 days. Material content changes are tracked separately from feed collection.
Measured payload improvements
| Resource | Audit baseline | Updated export | Meaning |
|---|---|---|---|
| Navigation wordmark | 380,368 bytes PNG | 16,644 bytes WebP | About 96% smaller |
| Browser favicon | 478,796 bytes PNG | 2,251 bytes PNG | About 99.5% smaller |
| Homepage HTML | About 449 KB | About 118 KB | Decoded, uncompressed HTML; not network transfer size |
| Compass HTML | About 426 KB | About 74 KB | Full discovery data loads once when needed |
| Saved page HTML | About 380 KB | About 38 KB | Personal records remain in browser storage |
Payload figures describe this build and can vary with inventory. Lab speed and layout stability must be assessed separately; these reductions do not guarantee a Lighthouse score or ranking.
Audit findings and disposition
| Finding | Status | Implementation or remaining dependency |
|---|---|---|
| F01 · HTTPS and redirect consistency | Provisioning | Apex DNS now resolves directly to GitHub Pages. Owner reports the www CNAME saved. GitHub certificate issuance and HTTPS enforcement need final verification. |
| F02 · Crawlable job discovery | Implemented | Static pagination, updated sitemap and full HTML-link reachability checks. |
| F03 · Search and salary layout shifts | Implemented | Server-rendered useful UI, isolated query observer and reserved salary-source information space. Production lab retest remains a separate measurement. |
| F04 · Oversized branding | Implemented | WebP wordmark, 48/96px icons, 180px Apple icon, 256px structured-data logo and 1200×630 social cards. |
| F05 · Fonts and repeated client payloads | Implemented | Local WOFF2 fonts with licenses; reduced preview props; shared hashed discovery data. |
| F06 · Contrast, labels and headings | Implemented | Darker small-text accent, clearer footer links, larger secondary text, visible sort label and a results H2. This is not a full WCAG certification. |
| F07 · Duplicate vacancies | Implemented | Deterministic primary selection and conservative same-body, same-title, same-company, same-city merge, with alternate source links retained. |
| F08 · Freshness and indexing policy | Implemented | Active employer availability, 48-hour collection window, closing dates and material-change timestamps are handled separately. |
| F09 · Conditional JobPosting markup | Implemented | Only complete, known-location, non-remote Arbeitnow records qualify under the documented API-use interpretation. Eleven qualify in this snapshot. Other sources are excluded until permission and field accuracy are reviewed; Remotive is excluded explicitly. |
| F10 · Market intent and original content | Implemented | Explicit country H1s, inventory-backed market fields and practical guide examples. |
| F11 · Operator and corrections | Implemented | Maintainer identification, careervettai@gmail.com, vacancy correction links, editorial and privacy explanations. |
| F12 · Search monitoring and release checks | Owner account step | Verification-token support and CI checks are implemented. Search Console/Bing verification and sitemap submission require the owner's accounts and are not claimed complete. |
| F13 · Guide/social metadata | Implemented | Publication/revision dates, guide-specific Article/Open Graph/Twitter images and BreadcrumbList markup. |
| F14 · Entities, titles and Arcade intent | Implemented | Entity decoding, readable intent-based page headings and a separately explained skill-practice page linked from Games. Original employer job titles are preserved rather than cut to an arbitrary SEO character count. |
| F15 · Cache lifetime | Hosting controlled | Payload reductions and hashed discovery data are implemented. GitHub Pages response cache headers cannot be changed by Next.js app configuration; longer edge lifetimes require hosting/CDN control. |
Checks completed
- ESLint and TypeScript validation, production static export, and 25 unit/regression tests.
- Exported HTML: titles, descriptions, one main H1, self canonicals, parseable structured data, sitemap URL uniqueness and exclusions, and full link reachability of every indexable vacancy.
- 465 exported HTML pages checked; 460 sitemap URLs; 896 JSON-LD objects; 11 eligible JobPosting objects in the local snapshot.
- Browser checks at 320px, 390px and 1440px: ten representative routes, keyword/skill/country search, legacy query forwarding, salary inputs, Compass results and outside-click menu dismissal.
- Useful content without JavaScript on Home, Jobs, Search, Offer Lens and About. Navigation skeleton intent and dismissal on document completion checked separately.
- Production deployment repeats the automated checks against refreshed source data. Counts can differ from this local snapshot.
What the owner still needs to do
- Allow GitHub to finish certificate issuance after the DNS update. Verify HTTPS enforcement and the www redirect once the certificate is available.
- Verify the domain in Google Search Console and Bing Webmaster Tools, then submit
https://careervettai.me/sitemap.xml. Repository verification-variable support and exact steps are documented indocs/seo-operations.md. - Monitor real-user Core Web Vitals and indexing after traffic and crawl data accumulate. No ranking, rich-result appearance or indexing result is guaranteed by a passing build.
Production verification
Release 56d88e7 deployed successfully through GitHub Actions. Its refreshed inventory passed checks for 475 HTML pages, 470 sitemap URLs and complete HTML-link reachability of all 470 indexable pages. It includes 23 eligible JobPosting objects. The machine-readable SEO check results always describe the current deployment.
Live browser checks passed the same ten representative routes at 320px, 390px and 1440px, plus search filters, legacy links, salary inputs, Compass interactions, outside-click menu dismissal and useful HTML without JavaScript. A delayed Next.js route request also displayed the navigation skeleton; normal document completion dismissed the separate navigation-intent test.
Mobile lab measurements · 28 October, 08:53–08:55 UTC
These four single runs used Lighthouse 12.8.2, Chrome 155 and simulated mobile throttling over HTTP while the GitHub HTTPS certificate was unavailable. The original audit used HTTPS and repeated the affected pages. Transport, sample count and route changes prevent a direct speed-score comparison. These are lab observations, not real-user field results. A further release increases small-text legibility and disables automatic prefetching of header, footer and mobile navigation routes.
| Page | Performance / SEO | LCP | CLS | Transferred bytes |
|---|---|---|---|---|
| Home | 69 / 100 | 5.70 s | 0.000 | 442,603 |
| Job catalogue | 83 / 100 | 2.93 s | 0.009 | 441,430 |
| Search, Singapore filter | 76 / 66 | 5.07 s | 0.000 | 442,556 |
| Offer Lens | 89 / 100 | 3.60 s | 0.000 | 379,753 |
Search intentionally uses noindex, which explains its reduced Lighthouse SEO score. The earlier filtered-jobs CLS median was 0.774 and Offer Lens was 0.277; the new useful initial HTML and reserved layout address those hydration shifts. HTTPS, final redirect consistency and post-certificate speed measurement remain open hosting checks.