<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
				xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">

	<!-- Regular Pages -->
	
  <url>
    <loc>https://requestmetrics.com/c20ab6f66af94b779f9ef23994ca933d.txt</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/tag/caching/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/tag/chrome-ux-report/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/company/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/core-web-vitals/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/tag/core-web-vitals/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/feature/crux-compare/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/customers/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/dpa/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/tag/http/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/partners/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/community/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/product/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/engineering/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/performance/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/ux/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/contact/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/schedule-demo/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/tips/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/search/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/partners/join/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/launch-week/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/tag/layout-shift/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/lighthouse-performance-testing/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/tag/lighthouse/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/tag/load-time/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/feature/long-animation-frames/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/pagespeed/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/tag/paint/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/tag/performance-tools/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/pricing/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/privacy/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/tag/product/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/real-user-monitoring/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/tag/real-user-monitoring/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/resource-performance/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/tag/resources/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/tag/synthetic-testing/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/terms/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/why-we-are-different/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/tag/wordpress/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	

	<!-- Blog Posts -->
	
  <url>
    <loc>https://requestmetrics.com/web-performance/understanding-lighthouse-speed-index/</loc>
    <lastmod>2026-02-12T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/post-image-generic-7.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/understanding-lighthouse-first-meaningful-paint/</loc>
    <lastmod>2026-02-05T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/post-image-generic-4.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/understanding-lighthouse-largest-contentful-paint/</loc>
    <lastmod>2026-01-22T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/post-image-generic-5.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/lighthouse-first-contentful-paint/</loc>
    <lastmod>2026-01-15T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/post-image-generic-6.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/lighthouse-viewport-meta-tag/</loc>
    <lastmod>2026-01-06T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/post-image-generic-8.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/product/preserve-url-casing/</loc>
    <lastmod>2025-12-22T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/post-image-generic-4.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/the-limitations-of-lighthouse/</loc>
    <lastmod>2025-06-06T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/post-image-generic-7.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/you-need-rum-to-understand-web-perf/</loc>
    <lastmod>2025-06-05T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/post-image-generic-4.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/synthetic-testing-and-real-user-monitoring/</loc>
    <lastmod>2025-06-04T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/post-image-generic-6.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/http-caching/</loc>
    <lastmod>2025-02-27T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/post-image-generic-2.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/gtmetrix-alternatives/</loc>
    <lastmod>2025-02-25T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/post-image-generic-fuel.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/http3-is-fast/</loc>
    <lastmod>2025-02-19T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/post-image-generic-chase.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/5-tips-to-make-google-fonts-faster/</loc>
    <lastmod>2025-02-06T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/post-image-generic-6.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/high-performance-images/</loc>
    <lastmod>2025-02-04T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/post-image-generic-5.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/community/how-to-use-wp_redirect-in-wordpress/</loc>
    <lastmod>2025-01-24T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/post-image-generic-1.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/product/unified-web-performance/</loc>
    <lastmod>2025-01-13T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/2025-01-integrated-web-performance/title2.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/fixing-long-animation-frame-loaf/</loc>
    <lastmod>2024-10-31T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/2024-10-loaf/fixing-loaf.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/product/perforator-and-request-metrics/</loc>
    <lastmod>2024-10-22T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/2024-10-rm-perforator/title.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/long-animation-frame-loaf/</loc>
    <lastmod>2024-10-17T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/post-image-generic-7.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/chrome-user-experience-report-crux/</loc>
    <lastmod>2024-09-23T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/post-image-generic-8.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/product/resource-performance-monitoring/</loc>
    <lastmod>2024-05-13T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/2024-05-resource-performance-monitoring/title.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/how-to-monitor-cross-origin-resource-performance/</loc>
    <lastmod>2024-02-19T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/2024-01-29-how-to-monitor-cross-origin-resource-performance/title.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/inp-interaction-to-next-paint/</loc>
    <lastmod>2024-02-08T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/webperf/inp/title.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/product/trying-and-failing-and-trying-again/</loc>
    <lastmod>2024-01-22T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/2024-01-trying-and-failing/title.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/performance/frontend-vs-backend-performance/</loc>
    <lastmod>2023-10-23T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/2023-10-18-frontend-vs-backend-performance/title.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/ux/what-is-a-rage-click/</loc>
    <lastmod>2023-07-31T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/2023-07-31-what-is-a-rage-click/title.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/performance/time-to-interactive-tti/</loc>
    <lastmod>2023-07-20T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/2023-07-20-time-to-interactive/title.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/product/metadata-page-views-sbom/</loc>
    <lastmod>2023-07-13T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/2023-07-13-metadata-page-views-sbom/title.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/performance/debugging-slow-core-web-vitals/</loc>
    <lastmod>2023-07-10T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://img.youtube.com/vi/hf1NnBcC0D8/mqdefault.jpg</image:loc>
    </image:image>
    <video:video>
      <video:title><![CDATA[Debugging a Slow Core Web Vital Score]]></video:title>
      <video:description><![CDATA[A Request Metrics customer asked for some help troubleshooting poor scores on their Core Web Vitals, specifically the Largest Contentful Paint. I did a deep dive on their site and recorded my debugging session, so you can see how I went about finding the root cause.]]></video:description>
      <video:thumbnail_loc>https://i.ytimg.com/vi//maxresdefault.jpg</video:thumbnail_loc>
      <video:player_loc>https://www.youtube.com/embed/hf1NnBcC0D8</video:player_loc>
    </video:video>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/product/google-analytics-4-has-me-so-frustrated-we-built-our-own-analytics-service/</loc>
    <lastmod>2023-05-17T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/2023-05-17-google-analytics-4-has-me-so-frustrated-we-built-our-own-analytics-service/title.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/product/our-friendly-ai-sloth-that-analyzes-your-observability-data/</loc>
    <lastmod>2023-05-08T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/2023-05-08-our-friendly-ai-sloth-that-analyzes-your-observability-data/title.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/community/svelte-vs-react-on-performance/</loc>
    <lastmod>2023-02-13T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/2023-02-13-svelte-vs-react-on-performance/title.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/measure-web-performance/</loc>
    <lastmod>2023-02-02T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/webperf/measure-web-performance/title-2000.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/community/css-image-effects-a-detailed-guide/</loc>
    <lastmod>2022-12-15T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/blog/2022-12-15-css-image-effects-a-detailed-guide/title.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/explaining-performance-to-nontechnical-stakeholders/</loc>
    <lastmod>2022-09-13T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/webperf/explaining-performance/webperf-teaser-wide-2000.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/audit-google-ads/</loc>
    <lastmod>2022-08-01T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/webperf/google-ads/google-audit-teaser-2000.min.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/flame-charts-and-percentiles/</loc>
    <lastmod>2022-07-25T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/webperf/flame-charts/webperf-teaser-wide-2000.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/google-ads-are-slow/</loc>
    <lastmod>2022-07-18T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/webperf/google-ads/google-ads-teaser-2000.min.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/core-web-vitals-overlay/</loc>
    <lastmod>2022-06-27T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/webperf/overlay/overlay-teaser-2000.min.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/optimizing-static-html-images-webpack/</loc>
    <lastmod>2022-06-20T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/webperf/static-html-images/webperf-teaser-wide-2000.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/nginx-image-optimization/</loc>
    <lastmod>2022-06-13T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/webperf/nginx-images/nginx-images-teaser-2000.min.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/fast-inline-images-react-webpack/</loc>
    <lastmod>2022-06-06T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/webperf/inline-images/inline-images-webpack-2000.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/brotli-nginx/</loc>
    <lastmod>2022-05-19T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/webperf/brotli/brotli-teaser-2000.min.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/advertising-performance-tradeoffs/</loc>
    <lastmod>2021-09-28T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/webperf/perf-ads/advertising-performance-tradeoffs-2000.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/fix-first-contentful-paint-fcp/</loc>
    <lastmod>2021-05-17T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/webperf/fix-first-contentful-paint/fixing-fcp-cheatsheet-2000.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/first-contentful-paint-fcp/</loc>
    <lastmod>2021-05-10T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/webperf/fcp/using-fcp-2000.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/performance-profiling-instacart/</loc>
    <lastmod>2020-11-09T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/webperf/perf-instacart/title-2000.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/performance-profiling-google/</loc>
    <lastmod>2020-09-15T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/webperf/perf-google/google-title-2000.min.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/first-input-delay/</loc>
    <lastmod>2020-09-08T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/webperf/fid/fid-title-2000.min.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/performance-profiling-nike/</loc>
    <lastmod>2020-08-25T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/webperf/perf-nike/nike-title-2000.min.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/ethical-privacy-web-analytics/</loc>
    <lastmod>2020-08-24T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/webperf/privacy/privacy-title-2000.min.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/largest-contentful-paint/</loc>
    <lastmod>2020-08-20T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/webperf/lcp/lcp-title-2000.min.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/fastest-news-sites/</loc>
    <lastmod>2020-08-20T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/webperf/fastest-news-sites/fastest-news-2000.min.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/web-performance/cumulative-layout-shift/</loc>
    <lastmod>2020-08-19T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/webperf/cls/measuring-cls-2000.min.png</image:loc>
    </image:image>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/building/breaking-out-of-webpack-based-build-chains</loc>
    <lastmod>2020-05-13T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://img.youtube.com/vi/PcpO5b10J9Q/mqdefault.jpg</image:loc>
    </image:image>
    <video:video>
      <video:title><![CDATA[Breaking Out of Webpack Based Build Chains]]></video:title>
      <video:description><![CDATA[JavaScript build chains have gotten outrageously complicated. Let’s create one that isn’t. Request Metrics monitors how real users experience the performance of your production websites. We won’t get far without a javascript agent to pull performance data out of the browser!]]></video:description>
      <video:thumbnail_loc>https://i.ytimg.com/vi//maxresdefault.jpg</video:thumbnail_loc>
      <video:player_loc>https://www.youtube.com/embed/PcpO5b10J9Q</video:player_loc>
    </video:video>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/building/using-the-beacon-api</loc>
    <lastmod>2020-05-11T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://img.youtube.com/vi/Dzh4-Kh3Ngg/mqdefault.jpg</image:loc>
    </image:image>
    <video:video>
      <video:title><![CDATA[Using the Beacon API]]></video:title>
      <video:description><![CDATA[We need to capture performance data as the user is leaving the page. The Beacon gives us a reliable way to do that. Users are so annoying! There they go, leaving the page before we can save the data to the API. Back in the old days, we would attach a window.unload handler and try to send an AJAX request, but this was slow and unreliable.Enter the Beacon API to give us a better way.The Beacon provides a reliable way to send a small amount of data after the page has been unloaded. It’s not bound to the lifetime of the page and it doesn’t slow down the user.]]></video:description>
      <video:thumbnail_loc>https://i.ytimg.com/vi//maxresdefault.jpg</video:thumbnail_loc>
      <video:player_loc>https://www.youtube.com/embed/Dzh4-Kh3Ngg</video:player_loc>
    </video:video>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/building/nginx-queue-screw-best-practices</loc>
    <lastmod>2020-05-06T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://img.youtube.com/vi/IiPf3iWnfu8/mqdefault.jpg</image:loc>
    </image:image>
    <video:video>
      <video:title><![CDATA[Using NGINX as a Queue for JSON Data]]></video:title>
      <video:description><![CDATA[We need a queue to push our incoming performance data to. What we have is NGINX. Can we use NGINX and a custom log format to create a poor man’s queue? You bet we can. Request Metrics is a real user monitoring for your Core Web Vitals and website performance](/core-web-vitals/).  As such, we need to build a data ingestion pipeline that will consume performance data and process it.  When building data processing pipelines it’s advisable to separate the ingestion piece from the processing piece.  This allows some flexibility and an opportunity to add redundancy and reliability to each part.One common approach to ingest is to shove incoming data into a queue.  Queues are meant to handle huge volumes of data and store it for future processing.  A queue sounds like exactly what we want in this case. The problem is, we like simple things, and figuring out fancy distributed queues is anything but.  So we’re going to eschew best practices and use NGINX as our queue!]]></video:description>
      <video:thumbnail_loc>https://i.ytimg.com/vi//maxresdefault.jpg</video:thumbnail_loc>
      <video:player_loc>https://www.youtube.com/embed/IiPf3iWnfu8</video:player_loc>
    </video:video>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/building/episode-17-user-sign-up-and-simple-access-control</loc>
    <lastmod>2020-04-29T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://img.youtube.com/vi/-HD-7coEcOk/mqdefault.jpg</image:loc>
    </image:image>
    <video:video>
      <video:title><![CDATA[Episode 17: User Sign Up and Simple Access Control]]></video:title>
      <video:description><![CDATA[Users can’t actually sign up for an account. Today we fix that. Request Metrics won’t be very successful if users can’t sign up! We recently completed cookie based user authentication and distributed session using Redis but neglected initial sign up. Now we finally go back and do some boring forms and CRUD work.]]></video:description>
      <video:thumbnail_loc>https://i.ytimg.com/vi//maxresdefault.jpg</video:thumbnail_loc>
      <video:player_loc>https://www.youtube.com/embed/-HD-7coEcOk</video:player_loc>
    </video:video>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/building/episode-16-using-redis-for-distributed-user-sessions-in-asp-net-core</loc>
    <lastmod>2020-04-27T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://img.youtube.com/vi/1ZEsPpqFAQ8/mqdefault.jpg</image:loc>
    </image:image>
    <video:video>
      <video:title><![CDATA[Episode 16: Using Redis for Distributed User Sessions in ASP.NET Core]]></video:title>
      <video:description><![CDATA[We need distributed session state because load balancing with sticky sessions is whack. Spoiler: We DON’T roll it ourselves. ASP.NET session storage is useful for storing state across page views. In single server situations it’s simple to set up because ASP.NET supports in-memory session out of the box.  In-memory sessions stop working as soon as there is more than one server. Most production environments have more than one server so the session issue needs to be dealt with.]]></video:description>
      <video:thumbnail_loc>https://i.ytimg.com/vi//maxresdefault.jpg</video:thumbnail_loc>
      <video:player_loc>https://www.youtube.com/embed/1ZEsPpqFAQ8</video:player_loc>
    </video:video>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/building/episode-15-simple-cookie-based-authentication-in-asp-net-core</loc>
    <lastmod>2020-04-22T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://img.youtube.com/vi/I6wn3sU9D4Q/mqdefault.jpg</image:loc>
    </image:image>
    <video:video>
      <video:title><![CDATA[Episode 15: Simple Cookie Based Authentication in ASP.NET Core]]></video:title>
      <video:description><![CDATA[ASP.Net Core Identity is too magical. Will rolling authentication ourselves finally catch up to us? There are as many ways to set up authentication as there are to build the application itself. Core Identity is the officially encouraged method of authenticating users in ASP.NET Core. As you might have guessed, we’re not fans of the heavy handed, black box approach needed to make Core Identity “Just work”.]]></video:description>
      <video:thumbnail_loc>https://i.ytimg.com/vi//maxresdefault.jpg</video:thumbnail_loc>
      <video:player_loc>https://www.youtube.com/embed/I6wn3sU9D4Q</video:player_loc>
    </video:video>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/building/episode-14-storing-user-data-in-redis</loc>
    <lastmod>2020-04-20T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://img.youtube.com/vi/5NuW8ZrqrMM/mqdefault.jpg</image:loc>
    </image:image>
    <video:video>
      <video:title><![CDATA[Episode 14: Storing User Data In Redis]]></video:title>
      <video:description><![CDATA[Redis only supports a handful of data types. Our data model has to fit within them. Are we crazy for trying this? It’s time to think about the data model for Request Metrics. We plan to store all customer records in Redis. This requires some thought because Redis is not a relational database. Any linkages between entities like users and customers must be managed by us. The data model should be full enough that we can find the the linkages we need, but not so complex that we continually break the linkages or need complex cleanup operations.]]></video:description>
      <video:thumbnail_loc>https://i.ytimg.com/vi//maxresdefault.jpg</video:thumbnail_loc>
      <video:player_loc>https://www.youtube.com/embed/5NuW8ZrqrMM</video:player_loc>
    </video:video>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/building/episode-13-testing-In-dot-net-core-using-nunit</loc>
    <lastmod>2020-04-15T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://img.youtube.com/vi/PNyn6UdVmiY/mqdefault.jpg</image:loc>
    </image:image>
    <video:video>
      <video:title><![CDATA[Episode 13: Testing In .NET Core Using NUnit]]></video:title>
      <video:description><![CDATA[Testing framework arguments are almost as bad as tabs vs spaces. We’ve definitely picked the right one though. We’re professionals. We’ve started writing application code for Request Metrics. That code needs to be tested. Before we start testing, we need a unit test framework for our .NET Core solution. We’ve used various frameworks on our .NET projects over the years, but enough has changed in .NET Core to require a small investigation into unit testing options.]]></video:description>
      <video:thumbnail_loc>https://i.ytimg.com/vi//maxresdefault.jpg</video:thumbnail_loc>
      <video:player_loc>https://www.youtube.com/embed/PNyn6UdVmiY</video:player_loc>
    </video:video>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/building/episode-12-tweaking-systemd-services-with-ansible</loc>
    <lastmod>2020-04-09T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://img.youtube.com/vi/YUaeL1vl_L8/mqdefault.jpg</image:loc>
    </image:image>
    <video:video>
      <video:title><![CDATA[Episode 12: Tweaking Systemd Services With Ansible]]></video:title>
      <video:description><![CDATA[We thought we were done with infrastructure work. We were wrong. Just as we’ve started work on application code, it turns out our server configuration needs a couple changes. Our application loads its environment config based off of an environment variable. We need to ensure this variable is actually set on the server. We also want to fix our Ansible playbook which fails when run on fresh servers.]]></video:description>
      <video:thumbnail_loc>https://i.ytimg.com/vi//maxresdefault.jpg</video:thumbnail_loc>
      <video:player_loc>https://www.youtube.com/embed/YUaeL1vl_L8</video:player_loc>
    </video:video>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/building/episode-11-connecting-to-redis-in-dotnet-core-3-1</loc>
    <lastmod>2020-04-07T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://img.youtube.com/vi/a_0FEad9i0Y/mqdefault.jpg</image:loc>
    </image:image>
    <video:video>
      <video:title><![CDATA[Episode 11: Connecting to Redis in .NET Core 3.1]]></video:title>
      <video:description><![CDATA[We’ve finally finished screwing around with basic groundwork. Today we start writing actually useful application code! First, can we connect to Redis? Now we get to start writing “real” application code! Redis is an important piece of the Request Metrics puzzle. We should start using it sooner rather than later. Connecting to Redis implies some connection strings, so we’ll create a basic environment based configuration while we’re thinking about it.]]></video:description>
      <video:thumbnail_loc>https://i.ytimg.com/vi//maxresdefault.jpg</video:thumbnail_loc>
      <video:player_loc>https://www.youtube.com/embed/a_0FEad9i0Y</video:player_loc>
    </video:video>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/building/episode-10-installing-redis-using-an-ansible-galaxy-role</loc>
    <lastmod>2020-04-02T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://img.youtube.com/vi/C8PwcN2KNCg/mqdefault.jpg</image:loc>
    </image:image>
    <video:video>
      <video:title><![CDATA[Episode 10: Installing Redis Using An Ansible Galaxy Role]]></video:title>
      <video:description><![CDATA[A pre-built playbook from Ansible Galaxy lets us easily install Redis. (Even we don’t re-invent the wheel every time.) The Request Metrics application will use Redis as its main data store. We need to install Redis on our servers to find out if this is a good plan. Ansible provides a repeatable way of doing this configuration work.]]></video:description>
      <video:thumbnail_loc>https://i.ytimg.com/vi//maxresdefault.jpg</video:thumbnail_loc>
      <video:player_loc>https://www.youtube.com/embed/C8PwcN2KNCg</video:player_loc>
    </video:video>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/building/episode-9-running-aspnet-core-applications-using-systemd-and-ansible</loc>
    <lastmod>2020-03-30T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://img.youtube.com/vi/NcKu3tsRCy4/mqdefault.jpg</image:loc>
    </image:image>
    <video:video>
      <video:title><![CDATA[Episode 9: Running ASP.NET Core Applications Using Systemd and Ansible]]></video:title>
      <video:description><![CDATA[A web application isn’t much use if it isn’t running. We’ll hand in our neckbeard cards and copy+paste our way out of the problem. Last episode, we configured NGINX to act as a reverse proxy for our ASP.NET Core application. We tested our setup by manually running the .NET Core app from an SSH session. Today we’ll fix that stop-gap step by running our application as a service with systemd.]]></video:description>
      <video:thumbnail_loc>https://i.ytimg.com/vi//maxresdefault.jpg</video:thumbnail_loc>
      <video:player_loc>https://www.youtube.com/embed/NcKu3tsRCy4</video:player_loc>
    </video:video>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/building/episode-8-using-ansible-to-configure-nginx-for-aspnet-core</loc>
    <lastmod>2020-03-25T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://img.youtube.com/vi/Fz4FLFwMy2I/mqdefault.jpg</image:loc>
    </image:image>
    <video:video>
      <video:title><![CDATA[Episode 8: Using Ansible to Configure NGINX for ASP.NET Core]]></video:title>
      <video:description><![CDATA[It’s best practice for ASP.NET Core applications to have a “real” webserver in front of them. We’ll configure NGINX for the job using Ansible. We don’t hate all best practices. ASP.NET Core applications have a built-in webserver called Kestrel. This internal webserver is not intended to serve requests directly. It must be placed behind a production quality webserver such as NGINX, IIS, etc. We chose NGINX because we have experience with it and it runs on Linux. Ansible does all the needed configuration and keeps our servers consistent and predictable.]]></video:description>
      <video:thumbnail_loc>https://i.ytimg.com/vi//maxresdefault.jpg</video:thumbnail_loc>
      <video:player_loc>https://www.youtube.com/embed/Fz4FLFwMy2I</video:player_loc>
    </video:video>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/building/episode-7-using-ansible-roles-for-common-linux-settings</loc>
    <lastmod>2020-03-23T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://img.youtube.com/vi/fKX4XH-DcaM/mqdefault.jpg</image:loc>
    </image:image>
    <video:video>
      <video:title><![CDATA[Episode 7: Using Ansible Roles for Common Linux Settings]]></video:title>
      <video:description><![CDATA[Being Linux, some tweaks are needed right out of the box. Since we aren’t proper neckbeards we rely on Ansible to ensure we get them right for each new machine. It’s time to provision our Request Metrics server. There is some common configuration that applies to all Linux servers. We want this base configuration regardless of what that specific server is doing. This a great use case for an Ansible role.]]></video:description>
      <video:thumbnail_loc>https://i.ytimg.com/vi//maxresdefault.jpg</video:thumbnail_loc>
      <video:player_loc>https://www.youtube.com/embed/fKX4XH-DcaM</video:player_loc>
    </video:video>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/building/episode-6-buying-an-ssl-certificate</loc>
    <lastmod>2020-03-16T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://img.youtube.com/vi/miysmLHdzcM/mqdefault.jpg</image:loc>
    </image:image>
    <video:video>
      <video:title><![CDATA[Episode 6: Buying an SSL Certificate]]></video:title>
      <video:description><![CDATA[How to buy a wildcard SSL certificate like grumpy old men. How to buy a wildcard SSL certificate like grumpy old men. While there are other options like Let’s Encrypt, purchasing a certificate can be the simplest way to get an SSL certificate for a site. Even though it’s simple, there are a fair of number steps in the process.]]></video:description>
      <video:thumbnail_loc>https://i.ytimg.com/vi//maxresdefault.jpg</video:thumbnail_loc>
      <video:player_loc>https://www.youtube.com/embed/miysmLHdzcM</video:player_loc>
    </video:video>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/building/episode-5-lets-encrypt-lets-not</loc>
    <lastmod>2020-03-11T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://img.youtube.com/vi/0kHKhL4Abig/mqdefault.jpg</image:loc>
    </image:image>
    <video:video>
      <video:title><![CDATA[Episode 5: Let's Encrypt? Let's Not.]]></video:title>
      <video:description><![CDATA[We need a SSL certificate for our new site. Let’s Encrypt makes it easy, right? Actually, it’s complicated. SSL support is table stakes for any modern website. Browsers and search engines penalize un-encrypted websites to such an extent that SSL is necessary just to participate in the modern web.]]></video:description>
      <video:thumbnail_loc>https://i.ytimg.com/vi//maxresdefault.jpg</video:thumbnail_loc>
      <video:player_loc>https://www.youtube.com/embed/0kHKhL4Abig</video:player_loc>
    </video:video>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/building/episode-4-deploying_code_to_linux_from_teamcity</loc>
    <lastmod>2020-03-05T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://img.youtube.com/vi/nbW_ahIgg1w/mqdefault.jpg</image:loc>
    </image:image>
    <video:video>
      <video:title><![CDATA[Episode 4: Deploying Code to Linux From TeamCity]]></video:title>
      <video:description><![CDATA[We setup TeamCity to deploy the latest build to Linux using SSH. TeamCity is so slick, it can make anyone look like a wizard. Even us! We’re ready to deploy our code to a linux based development environment. Previously, we built our code in TeamCity and stored the artifacts. We also created a SSH key for our development server. Now, TeamCity can deploy artifacts to the server using the SSH key for authentication.]]></video:description>
      <video:thumbnail_loc>https://i.ytimg.com/vi//maxresdefault.jpg</video:thumbnail_loc>
      <video:player_loc>https://www.youtube.com/embed/nbW_ahIgg1w</video:player_loc>
    </video:video>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/building/episode-3_5-basic-ansible-with-ssh-keys</loc>
    <lastmod>2020-01-31T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://img.youtube.com/vi/KKpXG2yhAac/mqdefault.jpg</image:loc>
    </image:image>
    <video:video>
      <video:title><![CDATA[Episode 3.5: Basic Ansible With SSH Keys]]></video:title>
      <video:description><![CDATA[We finally use our new SSH key to provision our Linux dev server with Ansible. Witness the “Hello World” of Ansible setups. Now that we have a SSH key, we can configure the server to host our ASP.NET Core application. We use Ansible for this because of its relative simplicity vs many of the other available tools.]]></video:description>
      <video:thumbnail_loc>https://i.ytimg.com/vi//maxresdefault.jpg</video:thumbnail_loc>
      <video:player_loc>https://www.youtube.com/embed/KKpXG2yhAac</video:player_loc>
    </video:video>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/building/episode-3-ssh-key-for-server-authentication</loc>
    <lastmod>2020-01-30T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://img.youtube.com/vi/M-uvqcmJzHA/mqdefault.jpg</image:loc>
    </image:image>
    <video:video>
      <video:title><![CDATA[Episode 3: SSH Keys For Server Authentication]]></video:title>
      <video:description><![CDATA[We create a new SSH key to use for authentication to a Linux dev server. We’re rather unhip so we do it all from Windows. In the previous video, we created a build for our new project. Now we are configuring access to the development server using SSH keys. Follow along as we create a new SSH key pair using Git Bash. We’ll use PuTTY and the new key to SSH to our Linux server from a Windows machine. Generating a new SSH key is not too difficult, but there are a few gotchas when using Windows.]]></video:description>
      <video:thumbnail_loc>https://i.ytimg.com/vi//maxresdefault.jpg</video:thumbnail_loc>
      <video:player_loc>https://www.youtube.com/embed/M-uvqcmJzHA</video:player_loc>
    </video:video>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/building/episode-2-building-the-code</loc>
    <lastmod>2020-01-29T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://img.youtube.com/vi/PKsP1s6plUk/mqdefault.jpg</image:loc>
    </image:image>
    <video:video>
      <video:title><![CDATA[Episode 2: Building the Code]]></video:title>
      <video:description><![CDATA[We set up a repeatable CI build for our new .NET Core project so we can pretend we’re professionals. We’re old and crotchety though so we still use TeamCity instead of something hip. The unexciting ground work for RequestMetrics continues. We’ve got a basic ASP.NET Core project up and committed to Github. Now we need to build it! We have used TeamCity to build TrackJS for years. Since we don’t like change, we’re using it for Request Metrics too.]]></video:description>
      <video:thumbnail_loc>https://i.ytimg.com/vi//maxresdefault.jpg</video:thumbnail_loc>
      <video:player_loc>https://www.youtube.com/embed/PKsP1s6plUk</video:player_loc>
    </video:video>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/building/episode-1-file-new-project</loc>
    <lastmod>2020-01-28T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://img.youtube.com/vi/J-igabcZd4o/mqdefault.jpg</image:loc>
    </image:image>
    <video:video>
      <video:title><![CDATA[Episode 1: File-&gt;New Project]]></video:title>
      <video:description><![CDATA[Every journey begins with a single step. We wade through the myriad options of creating a new .NET Core project in 2020. We just make it look harder than it needs to be. We are excited to start on Request Metrics. Unfortunately, we need to get some unexciting ground work out of the way. First on the list is creating a new project. Request Metrics is the first time we’re using .NET Core in a production setting and hosting a .NET application on Linux.]]></video:description>
      <video:thumbnail_loc>https://i.ytimg.com/vi//maxresdefault.jpg</video:thumbnail_loc>
      <video:player_loc>https://www.youtube.com/embed/J-igabcZd4o</video:player_loc>
    </video:video>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/building/announcing-request-metrics</loc>
    <lastmod>2020-01-27T00:00:00+00:00</lastmod>
    <image:image>
      <image:loc>https://img.youtube.com/vi/NhTcdbd-zYA/mqdefault.jpg</image:loc>
    </image:image>
    <video:video>
      <video:title><![CDATA[Episode 0: Introducing Request Metrics!]]></video:title>
      <video:description><![CDATA[Announcing Request Metrics, a new tool from the team who built TrackJS. Request Metrics is a real user monitoring performance tool that records how fast your production websites are from your users’ perspective.]]></video:description>
      <video:thumbnail_loc>https://i.ytimg.com/vi//maxresdefault.jpg</video:thumbnail_loc>
      <video:player_loc>https://www.youtube.com/embed/NhTcdbd-zYA</video:player_loc>
    </video:video>
  </url>
	

	<!-- Authors -->
	
  <url>
    <loc>https://requestmetrics.com/blog/authors/eric-brandes</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/authors/eric_brandes.jpg</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/authors/jordan-griffin</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/authors/jordan_griffin.jpg</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/authors/mercy-kibet</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/authors/pius-aboyi</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/authors/pius_aboyi.jpeg</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/authors/siddhant-varma</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/authors/siddhant_varma.jpg</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/blog/authors/todd-gardner</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/authors/todd_gardner.jpg</image:loc>
    </image:image>
  </url>
	

	<!-- Resource Posts -->
	
  <url>
    <loc>https://requestmetrics.com/resources/events/2022-08-08-kcdc-2022/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/events/kcdc-event-image-2000.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/resources/events/2022-10-27-ndc-oslo-2022/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/events/ndcoslo-event-image-2000.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/resources/events/2022-11-15-ndc-minnesota-2022/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/events/ndcminnesota22-event-image-2000.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/resources/events/2023-01-16-that-conference-texas-2023/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/events/thattx-event-image-2000.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/resources/events/2023-01-23-ndc-london-2023/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/events/ndclondon23-event-image-2000.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/resources/events/2023-04-15-twin-cities-code-camp-24/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/events/tccc-event-image-2000.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/resources/events/2023-04-22-minnebar/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/events/minnebar-event-image-2000.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/resources/events/2023-04-24-connectaha-2023/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/events/connectaha-event-image-2000.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/resources/events/2023-05-05-stirtrek-2023/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/events/stirtrek-event-image-2000.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/resources/events/2023-05-24-osn-2023/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/events/osn-event-image-2000.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/resources/events/2023-06-21-kcdc/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/events/kcdc-event-image-2000.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/resources/events/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/resources/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/resources/tools/crux/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/resources/speed-test-title.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/resources/events/2024-09-05-webinar-beyond-pagespeed-load-testing-rum/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/resources/webinar-beyond-pagespeed-load-testing-rum/share.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/resources/tools/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    
  </url>
	
  <url>
    <loc>https://requestmetrics.com/resources/tools/timing-allow-origin-checker/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/resources/timing-allow-origin-checker.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/resources/tools/keyword-vitals/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/resources/keyword-vitals.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/resources/tools/http-cache-checker/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/resources/http-cache-checker/http-cache-checker2.png</image:loc>
    </image:image>
  </url>
	

	<!-- Docs -->
	
  <url>
    <loc>https://requestmetrics.com/docs/browser-agent/events</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/browser-agent/identify-users</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/browser-agent/install</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/browser-agent/metadata</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/browser-agent/reference</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/data-reporting/cross-origin-resources</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/data-reporting/definitions</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/data-reporting/domain-forwarding</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/faq</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/getting-started</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/browser-agent/content-security-policy</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/security-privacy/end-user-data</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/data-reporting/url-grouping</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/integrations/wordpress</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/integrations/shopify</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/integrations/nextjs</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/data-reporting/traffic-limits</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/pricing</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/synthetic-testing/crawler-ip-addresses</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/user-guides/cls</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/user-guides/crux</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/user-guides/index</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/user-guides/lcp</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/user-guides/load</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	
  <url>
    <loc>https://requestmetrics.com/docs/user-guides/loaf</loc>
    <lastmod>2026-02-13T17:29:37+00:00</lastmod>
    <image:image>
      <image:loc>https://requestmetrics.com/assets/images/brand/share-docs.png</image:loc>
    </image:image>
  </url>
	

</urlset>
