Báo cáo SEO: qrx.dk
Được tạo vào 20 tháng 10, 2026 · 51 phát hiện · 40.2s
Các trang web thương mại điện tử và thương mại có những thách thức SEO đặc thù — các trang sản phẩm đòi hỏi dữ liệu có cấu trúc, tốc độ tải nhanh và trải nghiệm di động tối ưu để chuyển đổi.
Chi tiết điểm số
Điểm trung bình của Thương mại điện tử: 62
Dự phóng điểm số
Cải thiện ước tính dựa trên các phát hiện trong báo cáo này
Ready to improve your SEO?
Start a free trial and see how your score can improve.
Chi tiết từng mô-đun
Tất cả phát hiện (42)
Nghiêm trọng (14)
- highi18n checker
hreflang coverage 4% (5/117 declared locales reachable)
Some declared hreflang locales did not return usable content.
Serve real, reachable content for every declared hreflang locale — free SEO tools flag declared-but-missing language versions as a defect.
- highcookies
Module failed
Module timeout
Try scanning again
- highindexing checker
Canonical points to different domain
Canonical: https://ayafamily.dk/de points to ayafamily.dk
Ensure the canonical URL points to the same domain unless cross-domain canonicalization is intended
- highreputation
Missing AggregateRating in schema
Found Organization, Product, Product schema without AggregateRating — missing rich snippet opportunity
Add aggregateRating with ratingValue, ratingCount, and bestRating to your structured data for star ratings in search results
- highpagespeed
Render-blocking requests
Requests are blocking the page's initial render, which may delay LCP. [Deferring or inlining](https://developer.chrome.com/docs/performance/insights/render-blocking) can move these network requests out of the critical path.
Requests are blocking the page's initial render, which may delay LCP. [Deferring or inlining](https://developer.chrome.com/docs/performance/insights/render-blocking) can move these network requests ou
- highpagespeed
Legacy JavaScript
Polyfills and transforms enable older browsers to use new JavaScript features. However, many aren't necessary for modern browsers. Consider modifying your JavaScript build process to not transpile [Baseline](https://web.dev/articles/baseline-and-polyfills) features, unless you know you must support
Polyfills and transforms enable older browsers to use new JavaScript features. However, many aren't necessary for modern browsers. Consider modifying your JavaScript build process to not transpile [Ba
- highpagespeed
Time to Interactive
Time to Interactive is the amount of time it takes for the page to become fully interactive. [Learn more about the Time to Interactive metric](https://developer.chrome.com/docs/lighthouse/performance/interactive/).
Time to Interactive is the amount of time it takes for the page to become fully interactive. [Learn more about the Time to Interactive metric](https://developer.chrome.com/docs/lighthouse/performance/
- highpagespeed
Reduce unused JavaScript
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lig
- highpagespeed
Reduce JavaScript execution time
Consider reducing the time spent parsing, compiling, and executing JS. You may find delivering smaller JS payloads helps with this. [Learn how to reduce Javascript execution time](https://developer.chrome.com/docs/lighthouse/performance/bootup-time/).
Consider reducing the time spent parsing, compiling, and executing JS. You may find delivering smaller JS payloads helps with this. [Learn how to reduce Javascript execution time](https://developer.ch
- highpagespeed
First Contentful Paint
First Contentful Paint marks the time at which the first text or image is painted. [Learn more about the First Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/first-contentful-paint/).
First Contentful Paint marks the time at which the first text or image is painted. [Learn more about the First Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/first-c
- highpagespeed
Largest Contentful Paint
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/l
- highpagespeed
Document request latency
Your first network request is the most important. [Reduce its latency](https://developer.chrome.com/docs/performance/insights/document-latency) by avoiding redirects, ensuring a fast server response, and enabling text compression.
Your first network request is the most important. [Reduce its latency](https://developer.chrome.com/docs/performance/insights/document-latency) by avoiding redirects, ensuring a fast server response,
- highpagespeed
Network dependency tree
[Avoid chaining critical requests](https://developer.chrome.com/docs/performance/insights/network-dependency-tree) by reducing the length of chains, reducing the download size of resources, or deferring the download of unnecessary resources to improve page load.
[Avoid chaining critical requests](https://developer.chrome.com/docs/performance/insights/network-dependency-tree) by reducing the length of chains, reducing the download size of resources, or deferri
- highpagespeed
Avoid multiple page redirects
Redirects introduce additional delays before the page can be loaded. [Learn how to avoid page redirects](https://developer.chrome.com/docs/lighthouse/performance/redirects/).
Redirects introduce additional delays before the page can be loaded. [Learn how to avoid page redirects](https://developer.chrome.com/docs/lighthouse/performance/redirects/).
Medium (18)
- mediumdns
No DKIM record found
None of the common DKIM selectors returned a valid key. Email authentication may be incomplete.
Configure DKIM signing with your email provider and publish the public key in DNS
- mediummeta
Title too short
Title is 10 characters (recommended: 50-60)
Write a more descriptive title (50-60 characters)
- mediumstructured data
Product missing image
Product schema has no image — required for Google rich results
Add at least one product image URL to the Product schema
- mediumsitemap
Sitemap contains foreign URLs
3120 URLs belong to other domains
Only include URLs from your own domain in the sitemap
- mediumcontent
Very low text-to-HTML ratio
Text/HTML ratio is 1% (recommended: >5%)
Increase meaningful text content relative to HTML markup
- mediumi18n checker
Inconsistent locale URL pattern
Mixed URL strategies detected: subdomain, subdirectory
Use a consistent URL pattern for all locales (subdirectory, subdomain, or ccTLD)
- mediumuptime checker
Slow response time
Average response time is 3205ms (should be < 2000ms)
Optimize server response time — consider CDN, caching, or server upgrades
- mediumreputation
No review platform links found
No links to Trustpilot, Google Business, TripAdvisor, Yelp, G2, Capterra, or Glassdoor detected on the homepage
Add links to your review profiles to build trust signals and improve local SEO
- mediumreputation
LocalBusiness missing "telephone"
LocalBusiness/Organization schema found but "telephone" is not set
Add "telephone" to your LocalBusiness schema for better local search visibility
- mediumreputation
LocalBusiness missing "openingHours"
LocalBusiness/Organization schema found but "openingHours" is not set
Add "openingHours" to your LocalBusiness schema for better local search visibility
- mediumreputation
LocalBusiness missing "geo"
LocalBusiness/Organization schema found but "geo" is not set
Add "geo" to your LocalBusiness schema for better local search visibility
- mediumreputation
LocalBusiness missing "priceRange"
LocalBusiness/Organization schema found but "priceRange" is not set
Add "priceRange" to your LocalBusiness schema for better local search visibility
- mediumreputation
LocalBusiness missing "image"
LocalBusiness/Organization schema found but "image" is not set
Add "image" to your LocalBusiness schema for better local search visibility
- mediumpagespeed
Use efficient cache lifetimes
A long cache lifetime can speed up repeat visits to your page. [Learn more about caching](https://developer.chrome.com/docs/performance/insights/cache).
A long cache lifetime can speed up repeat visits to your page. [Learn more about caching](https://developer.chrome.com/docs/performance/insights/cache).
- mediumpagespeed
Speed Index
Speed Index shows how quickly the contents of a page are visibly populated. [Learn more about the Speed Index metric](https://developer.chrome.com/docs/lighthouse/performance/speed-index/).
Speed Index shows how quickly the contents of a page are visibly populated. [Learn more about the Speed Index metric](https://developer.chrome.com/docs/lighthouse/performance/speed-index/).
- mediumpagespeed
Total Blocking Time
Sum of all time periods between FCP and Time to Interactive, when task length exceeded 50ms, expressed in milliseconds. [Learn more about the Total Blocking Time metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-total-blocking-time/).
Sum of all time periods between FCP and Time to Interactive, when task length exceeded 50ms, expressed in milliseconds. [Learn more about the Total Blocking Time metric](https://developer.chrome.com/d
- mediumpagespeed
Max Potential First Input Delay
The maximum potential First Input Delay that your users could experience is the duration of the longest task. [Learn more about the Maximum Potential First Input Delay metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-max-potential-fid/).
The maximum potential First Input Delay that your users could experience is the duration of the longest task. [Learn more about the Maximum Potential First Input Delay metric](https://developer.chrome
- mediumpagespeed
Improve image delivery
Reducing the download time of images can improve the perceived load time of the page and LCP. [Learn more about optimizing image size](https://developer.chrome.com/docs/performance/insights/image-delivery)
Reducing the download time of images can improve the perceived load time of the page and LCP. [Learn more about optimizing image size](https://developer.chrome.com/docs/performance/insights/image-deli
Low (10)
- lowcookies
1 cookie missing HttpOnly flag
Cookies without HttpOnly can be accessed by JavaScript, increasing XSS risk
Add HttpOnly to session and authentication cookies
- lowdns
DMARC reporting not configured
DMARC record does not have a rua= tag for aggregate reports.
Add rua=mailto:dmarc@yourdomain.com to receive DMARC reports
- lowmeta
Meta description too long
Description is 173 characters (recommended: 120-160)
Shorten the meta description to 120-160 characters
- lowstructured data
Product missing identifiers
Product schema has no SKU, GTIN, or MPN
Add product identifiers (sku, gtin, mpn) for better Google Shopping matching
- lowstructured data
Product missing identifiers
Product schema has no SKU, GTIN, or MPN
Add product identifiers (sku, gtin, mpn) for better Google Shopping matching
- lowstructured data
Duplicate Product schema
Found 2 schemas of type Product
Consider consolidating duplicate Product schemas into one
- lowtechnology
Many inline scripts
34 inline <script> blocks found
Move inline scripts to external files for caching and CSP compliance
- lowcontent
Lazy images without dimensions
5 lazy-loaded images lack width/height — causes layout shift
Add width and height attributes to lazy-loaded images
- lowrate limits
No rate limiting detected
No explicit rate-limit headers or 429 responses detected. Cloudflare WAF provides platform-level protection.
Implement rate limiting (e.g., 429 Too Many Requests) to protect against brute-force attacks
- lownews mentions
No press page on site
Found 4 external mentions but no dedicated press page
Create a /press or /news section to aggregate and amplify media coverage
AI Fix Prompt
Sao chép câu lệnh này vào ChatGPT hoặc Claude để nhận hướng dẫn sửa lỗi từng bước
Fix all SEO issues found in the audit of qrx.dk.
Prioritize high-severity issues first, then medium. For each fix, make the actual code change — don't just describe what to do.
```json
{
"domain": "qrx.dk",
"scores": {
"overall": 88,
"performance": 66,
"seo": 85,
"accessibility": 100,
"bestPractices": 97,
"security": 94
},
"findings": [
{
"module": "dns",
"severity": "medium",
"title": "No DKIM record found",
"description": "None of the common DKIM selectors returned a valid key. Email authentication may be incomplete.",
"recommendation": "Configure DKIM signing with your email provider and publish the public key in DNS"
},
{
"module": "meta",
"severity": "medium",
"title": "Title too short",
"description": "Title is 10 characters (recommended: 50-60)",
"recommendation": "Write a more descriptive title (50-60 characters)"
},
{
"module": "structured-data",
"severity": "medium",
"title": "Product missing image",
"description": "Product schema has no image — required for Google rich results",
"recommendation": "Add at least one product image URL to the Product schema"
},
{
"module": "sitemap",
"severity": "medium",
"title": "Sitemap contains foreign URLs",
"description": "3120 URLs belong to other domains",
"recommendation": "Only include URLs from your own domain in the sitemap"
},
{
"module": "content",
"severity": "medium",
"title": "Very low text-to-HTML ratio",
"description": "Text/HTML ratio is 1% (recommended: >5%)",
"recommendation": "Increase meaningful text content relative to HTML markup"
},
{
"module": "i18n-checker",
"severity": "medium",
"title": "Inconsistent locale URL pattern",
"description": "Mixed URL strategies detected: subdomain, subdirectory",
"recommendation": "Use a consistent URL pattern for all locales (subdirectory, subdomain, or ccTLD)"
},
{
"module": "i18n-checker",
"severity": "high",
"title": "hreflang coverage 4% (5/117 declared locales reachable)",
"description": "Some declared hreflang locales did not return usable content.",
"recommendation": "Serve real, reachable content for every declared hreflang locale — free SEO tools flag declared-but-missing language versions as a defect."
},
{
"module": "cookies",
"severity": "high",
"title": "Module failed",
"description": "Module timeout",
"recommendation": "Try scanning again"
},
{
"module": "uptime-checker",
"severity": "medium",
"title": "Slow response time",
"description": "Average response time is 3205ms (should be < 2000ms)",
"recommendation": "Optimize server response time — consider CDN, caching, or server upgrades"
},
{
"module": "indexing-checker",
"severity": "high",
"title": "Canonical points to different domain",
"description": "Canonical: https://ayafamily.dk/de points to ayafamily.dk",
"recommendation": "Ensure the canonical URL points to the same domain unless cross-domain canonicalization is intended"
},
{
"module": "reputation",
"severity": "medium",
"title": "No review platform links found",
"description": "No links to Trustpilot, Google Business, TripAdvisor, Yelp, G2, Capterra, or Glassdoor detected on the homepage",
"recommendation": "Add links to your review profiles to build trust signals and improve local SEO"
},
{
"module": "reputation",
"severity": "high",
"title": "Missing AggregateRating in schema",
"description": "Found Organization, Product, Product schema without AggregateRating — missing rich snippet opportunity",
"recommendation": "Add aggregateRating with ratingValue, ratingCount, and bestRating to your structured data for star ratings in search results"
},
{
"module": "reputation",
"severity": "medium",
"title": "LocalBusiness missing \"telephone\"",
"description": "LocalBusiness/Organization schema found but \"telephone\" is not set",
"recommendation": "Add \"telephone\" to your LocalBusiness schema for better local search visibility"
},
{
"module": "reputation",
"severity": "medium",
"title": "LocalBusiness missing \"openingHours\"",
"description": "LocalBusiness/Organization schema found but \"openingHours\" is not set",
"recommendation": "Add \"openingHours\" to your LocalBusiness schema for better local search visibility"
},
{
"module": "reputation",
"severity": "medium",
"title": "LocalBusiness missing \"geo\"",
"description": "LocalBusiness/Organization schema found but \"geo\" is not set",
"recommendation": "Add \"geo\" to your LocalBusiness schema for better local search visibility"
},
{
"module": "reputation",
"severity": "medium",
"title": "LocalBusiness missing \"priceRange\"",
"description": "LocalBusiness/Organization schema found but \"priceRange\" is not set",
"recommendation": "Add \"priceRange\" to your LocalBusiness schema for better local search visibility"
},
{
"module": "reputation",
"severity": "medium",
"title": "LocalBusiness missing \"image\"",
"description": "LocalBusiness/Organization schema found but \"image\" is not set",
"recommendation": "Add \"image\" to your LocalBusiness schema for better local search visibility"
},
{
"module": "pagespeed",
"severity": "high",
"title": "Render-blocking requests",
"description": "Requests are blocking the page's initial render, which may delay LCP. [Deferring or inlining](https://developer.chrome.com/docs/performance/insights/render-blocking) can move these network requests out of the critical path.",
"recommendation": "Requests are blocking the page's initial render, which may delay LCP. [Deferring or inlining](https://developer.chrome.com/docs/performance/insights/render-blocking) can move these network requests ou"
},
{
"module": "pagespeed",
"severity": "high",
"title": "Legacy JavaScript",
"description": "Polyfills and transforms enable older browsers to use new JavaScript features. However, many aren't necessary for modern browsers. Consider modifying your JavaScript build process to not transpile [Baseline](https://web.dev/articles/baseline-and-polyfills) features, unless you know you must support ",
"recommendation": "Polyfills and transforms enable older browsers to use new JavaScript features. However, many aren't necessary for modern browsers. Consider modifying your JavaScript build process to not transpile [Ba"
},
{
"module": "pagespeed",
"severity": "high",
"title": "Time to Interactive",
"description": "Time to Interactive is the amount of time it takes for the page to become fully interactive. [Learn more about the Time to Interactive metric](https://developer.chrome.com/docs/lighthouse/performance/interactive/).",
"recommendation": "Time to Interactive is the amount of time it takes for the page to become fully interactive. [Learn more about the Time to Interactive metric](https://developer.chrome.com/docs/lighthouse/performance/"
},
{
"module": "pagespeed",
"severity": "medium",
"title": "Use efficient cache lifetimes",
"description": "A long cache lifetime can speed up repeat visits to your page. [Learn more about caching](https://developer.chrome.com/docs/performance/insights/cache).",
"recommendation": "A long cache lifetime can speed up repeat visits to your page. [Learn more about caching](https://developer.chrome.com/docs/performance/insights/cache)."
},
{
"module": "pagespeed",
"severity": "high",
"title": "Reduce unused JavaScript",
"description": "Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).",
"recommendation": "Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lig"
},
{
"module": "pagespeed",
"severity": "high",
"title": "Reduce JavaScript execution time",
"description": "Consider reducing the time spent parsing, compiling, and executing JS. You may find delivering smaller JS payloads helps with this. [Learn how to reduce Javascript execution time](https://developer.chrome.com/docs/lighthouse/performance/bootup-time/).",
"recommendation": "Consider reducing the time spent parsing, compiling, and executing JS. You may find delivering smaller JS payloads helps with this. [Learn how to reduce Javascript execution time](https://developer.ch"
},
{
"module": "pagespeed",
"severity": "high",
"title": "First Contentful Paint",
"description": "First Contentful Paint marks the time at which the first text or image is painted. [Learn more about the First Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/first-contentful-paint/).",
"recommendation": "First Contentful Paint marks the time at which the first text or image is painted. [Learn more about the First Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/first-c"
},
{
"module": "pagespeed",
"severity": "medium",
"title": "Speed Index",
"description": "Speed Index shows how quickly the contents of a page are visibly populated. [Learn more about the Speed Index metric](https://developer.chrome.com/docs/lighthouse/performance/speed-index/).",
"recommendation": "Speed Index shows how quickly the contents of a page are visibly populated. [Learn more about the Speed Index metric](https://developer.chrome.com/docs/lighthouse/performance/speed-index/)."
},
{
"module": "pagespeed",
"severity": "high",
"title": "Largest Contentful Paint",
"description": "Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)",
"recommendation": "Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/l"
},
{
"module": "pagespeed",
"severity": "high",
"title": "Document request latency",
"description": "Your first network request is the most important. [Reduce its latency](https://developer.chrome.com/docs/performance/insights/document-latency) by avoiding redirects, ensuring a fast server response, and enabling text compression.",
"recommendation": "Your first network request is the most important. [Reduce its latency](https://developer.chrome.com/docs/performance/insights/document-latency) by avoiding redirects, ensuring a fast server response, "
},
{
"module": "pagespeed",
"severity": "medium",
"title": "Total Blocking Time",
"description": "Sum of all time periods between FCP and Time to Interactive, when task length exceeded 50ms, expressed in milliseconds. [Learn more about the Total Blocking Time metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-total-blocking-time/).",
"recommendation": "Sum of all time periods between FCP and Time to Interactive, when task length exceeded 50ms, expressed in milliseconds. [Learn more about the Total Blocking Time metric](https://developer.chrome.com/d"
},
{
"module": "pagespeed",
"severity": "medium",
"title": "Max Potential First Input Delay",
"description": "The maximum potential First Input Delay that your users could experience is the duration of the longest task. [Learn more about the Maximum Potential First Input Delay metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-max-potential-fid/).",
"recommendation": "The maximum potential First Input Delay that your users could experience is the duration of the longest task. [Learn more about the Maximum Potential First Input Delay metric](https://developer.chrome"
},
{
"module": "pagespeed",
"severity": "medium",
"title": "Improve image delivery",
"description": "Reducing the download time of images can improve the perceived load time of the page and LCP. [Learn more about optimizing image size](https://developer.chrome.com/docs/performance/insights/image-delivery)",
"recommendation": "Reducing the download time of images can improve the perceived load time of the page and LCP. [Learn more about optimizing image size](https://developer.chrome.com/docs/performance/insights/image-deli"
},
{
"module": "pagespeed",
"severity": "high",
"title": "Network dependency tree",
"description": "[Avoid chaining critical requests](https://developer.chrome.com/docs/performance/insights/network-dependency-tree) by reducing the length of chains, reducing the download size of resources, or deferring the download of unnecessary resources to improve page load.",
"recommendation": "[Avoid chaining critical requests](https://developer.chrome.com/docs/performance/insights/network-dependency-tree) by reducing the length of chains, reducing the download size of resources, or deferri"
},
{
"module": "pagespeed",
"severity": "high",
"title": "Avoid multiple page redirects",
"description": "Redirects introduce additional delays before the page can be loaded. [Learn how to avoid page redirects](https://developer.chrome.com/docs/lighthouse/performance/redirects/).",
"recommendation": "Redirects introduce additional delays before the page can be loaded. [Learn how to avoid page redirects](https://developer.chrome.com/docs/lighthouse/performance/redirects/)."
}
]
}
```Đề xuất cho ngành của bạn
- 1Thêm đánh dấu sơ đồ Product vào các trang sản phẩm
- 2Đánh dấu giá bằng sơ đồ Offer
- 3Tối ưu hóa tốc độ thanh toán xuống dưới 3 giây
- 4Thêm các tín hiệu tin cậy và đánh giá của khách hàng
- 5Đảm bảo trải nghiệm thanh toán thân thiện với thiết bị di động
Danh sách kiểm tra SEO cho Thương mại điện tử
Mẹo cho trang web B2C
- →Ưu tiên tốc độ di động và trải nghiệm người dùng
- →Sử dụng dữ liệu có cấu trúc phong phú cho sản phẩm/dịch vụ
- →Triển khai đánh giá của khách hàng và bằng chứng xã hội
Bối cảnh SEO địa phương
Tại Đan Mạch, Google chiếm ưu thế với hơn 95% thị phần. Tập trung vào tìm kiếm địa phương và chất lượng tiếng Đan Mạch.