chore: save iqon static deploy snapshot
This commit is contained in:
@@ -0,0 +1,151 @@
|
||||
# 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*
|
||||
Reference in New Issue
Block a user