Files
iqon/seo/url-cleanup-plan-2026-05-20.md
2026-05-20 17:21:42 +03:00

152 lines
6.4 KiB
Markdown

# IQON URL Cleanup Plan
Purpose: определить безопасную стратегию очистки sitemap, дублей, устаревших URL и multilingual-страниц `iqon.com` перед редизайном.
## Contents
- [Inputs](#inputs)
- [Inventory Summary](#inventory-summary)
- [Priority Groups](#priority-groups)
- [Recommended URL Policy](#recommended-url-policy)
- [Redirect Drafts](#redirect-drafts)
- [Verification](#verification)
- [Open Decisions](#open-decisions)
## Inputs
| Artifact | Role |
|----------|------|
| `reports/live-captures/2026-05-20/page-sitemap.xml` | Captured live Yoast page sitemap |
| `seo/sitemap-inventory-2026-05-20.csv` | Parsed URL inventory with classes and recommended actions |
| `scripts/iqon-sitemap-inventory.py` | Reproducible sitemap parser |
| `seo/redirect-map-2026-05-20.csv` | Draft 301 redirect map generated from inventory |
| `seo/nginx-redirects-2026-05-20.conf` | Draft nginx rewrite rules generated from redirect map |
| `scripts/iqon-generate-redirect-map.py` | Reproducible redirect-map generator |
## Inventory Summary
| Class | Count | Recommended Action |
|-------|-------|--------------------|
| `encoded_multilingual` | 29 | Decide hreflang or noindex/redirect |
| `service_or_content` | 26 | Review, rewrite, merge, or archive |
| `duplicate` | 7 | Canonicalize or remove duplicate entries |
| `homepage` | 1 | Rewrite homepage metadata and content |
| `thin_landing` | 1 | Rewrite as services overview |
| `typo_slug` | 1 | Redirect to corrected spelling |
| `legacy_home_alias` | 1 | Redirect to root or rewrite intentionally |
## Priority Groups
### P0: Fix Duplicates And Obvious Aliases
| URL Pattern | Problem | Proposed Action |
|-------------|---------|-----------------|
| `/homepage/` | Appears 3 times and duplicates root homepage intent | 301 to `/` unless WordPress requires it internally |
| `/contact/` | Appears twice in sitemap with different `lastmod` | Keep one canonical contact page |
| `/industry-specific-services/` | Appears twice outside the main `/services-solutions/` tree | 301 to `/services-solutions/industry-specific-services/` |
| `/hows-business/` | Legacy home/campaign alias | 301 to `/` or rewrite as a current thought-leadership page |
### P1: Fix Typo Slug
| URL | Problem | Proposed Action |
|-----|---------|-----------------|
| `/services-solutions/industry-specific-services/retail-wholesail/` | Typo in `wholesail` | 301 to `/services-solutions/industry-specific-services/retail-wholesale/` if page is retained |
### P1: Decide Russian URL Policy
There are 29 percent-encoded Russian-path URLs. Do not leave them as accidental indexable pages.
Choose one policy:
| Policy | Use When | Result |
|--------|----------|--------|
| Keep bilingual | Russian content is current and maintained | Add hreflang, clean RU nav, keep indexable |
| Archive Russian | Russian content is stale but useful | Noindex RU pages, keep reachable from archive |
| Remove Russian | Final site is English-only | 301 relevant RU URLs to English equivalents |
Recommended default unless business says otherwise: English-only public site with selected 301 redirects from Russian service URLs to matching English service pages.
### P1: Rewrite Thin Service Landing
`/services-solutions/` is a thin landing page. It should become the primary services overview with current service groups:
- IT strategy and governance
- Enterprise architecture and transformation
- Data, analytics, and decision support
- Infrastructure and cloud operations
- Security, continuity, and compliance
## Recommended URL Policy
Use a smaller, intentional URL set for the redesigned site:
| Final URL | Purpose |
|-----------|---------|
| `/` | Homepage |
| `/services/` | Services overview |
| `/services/strategy-governance/` | IT strategy and governance |
| `/services/enterprise-architecture/` | Business technology architecture |
| `/services/data-analytics/` | Enterprise information and decision support |
| `/services/infrastructure-cloud/` | Infrastructure and managed operations |
| `/services/security-continuity/` | Security, compliance, continuity |
| `/industries/` | Industry experience overview |
| `/case-studies/` | Current or clearly historical cases |
| `/contact/` | Verified contact path |
## Redirect Drafts
These are drafts, not deployed rules.
```nginx
rewrite ^/homepage/?$ / permanent;
rewrite ^/hows-business/?$ / permanent;
rewrite ^/industry-specific-services/?$ /services-solutions/industry-specific-services/ permanent;
rewrite ^/services-solutions/industry-specific-services/retail-wholesail/?$ /services-solutions/industry-specific-services/retail-wholesale/ permanent;
```
If the redesigned site uses the shorter `/services/` taxonomy, replace the destination URLs with the final URL set above.
Generated redirect artifacts:
| Artifact | Count | Notes |
|----------|-------|-------|
| `seo/redirect-map-2026-05-20.csv` | 32 rules | 28 RU-to-English defaults, 4 direct alias/typo redirects |
| `seo/nginx-redirects-2026-05-20.conf` | 32 rewrite rules | Review before deployment; not applied |
## Verification
```bash
scripts/iqon-sitemap-inventory.py reports/live-captures/2026-05-20/page-sitemap.xml seo/sitemap-inventory-2026-05-20.csv
python3 -c "import csv,collections; rows=list(csv.DictReader(open('seo/sitemap-inventory-2026-05-20.csv',encoding='utf-8'))); print(len(rows)); print(collections.Counter(r['class'] for r in rows))"
PYTHONPYCACHEPREFIX=/private/tmp/iqon-pycache python3 -m py_compile scripts/iqon-generate-redirect-map.py
python3 scripts/iqon-generate-redirect-map.py seo/sitemap-inventory-2026-05-20.csv seo/redirect-map-2026-05-20.csv seo/nginx-redirects-2026-05-20.conf
```
Expected current signal:
- `66` rows.
- `encoded_multilingual: 29`.
- `duplicate: 7`.
- `typo_slug: 1`.
- `thin_landing: 1`.
- `legacy_home_alias: 1`.
After cleanup, expected signal:
- No duplicate canonical URLs in sitemap.
- No accidental encoded Russian URLs unless bilingual policy is approved.
- No typo slug in sitemap.
- Root homepage and `/homepage/` are not both indexable.
## Open Decisions
- Should final public site be English-only or bilingual EN/RU?
- Should old service-detail pages survive as pages, merge into sections, or redirect to fewer modern pages?
- Should `/services-solutions/` stay for SEO continuity or redirect to `/services/` in the redesign?
- Should `/case-studies/` show historical cases or wait for current case material?
---
*Created: 20 May 2026*
*Updated: 20 May 2026*