Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

QGIS has a built-in XYZ Tiles provider, so you do not need QuickMapServices or another plugin to add a web basemap. Connect to a tile URL, choose its zoom range, and add it from the Browser panel or Data Source Manager.

As of August 7, 2026, the latest QGIS release is QGIS 4.2.0 “Belém do Pará”, released July 3, 2026. The current Long-Term Release is QGIS 3.44.12 “Solothurn.” These instructions use the XYZ interface documented for current QGIS releases and apply to both branches, although labels can vary slightly between versions.

What an XYZ basemap is

An XYZ basemap is a raster map divided into small image tiles. QGIS requests individual tiles as you zoom and pan. The service URL normally contains three placeholders, in this format: https://example.com/{z}/{x}/{y}.png

  • {z} is the zoom level.
  • {x} is the tile column.
  • {y} is the tile row.

Keep the placeholder order exactly as supplied by the tile provider. Replacing {x} and {y}, or using an inverted TMS-style Y value against a server expecting XYZ, will produce missing or incorrectly positioned tiles.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Learn QGIS: Your step-by-step guide to the fundamental of QGIS 3.4, 4th Edition
  • Learn QGIS: Your stepbystep guide to the fundamental of QGIS 3.4, 4th Edition
  • ABIS BOOK
  • Packt Publishing

Before you begin: choose the right QGIS version

Release Best for
Latest Release: QGIS 4.2.0 Users who want the newest features and improvements.
Long-Term Release: QGIS 3.44.12 Production, teaching, and projects that prioritize stability and a longer support cycle.

Download either installer from the official QGIS download page. The LTR is the stability-focused option.

Method 1: Add Google Maps with the XYZ Tiles provider

QGIS’s documentation gives this Google Maps road-map URL as an XYZ example: https://mt1.google.com/vt/lyrs=m&x={x}&y={y}&z={z}

In this URL, lyrs=m identifies the road-map style. The documented example uses zoom levels 0 through 19.

Create a persistent Google Maps connection

  1. Open Layer ► Add Layer ► Add XYZ Layer…. You can also click the Open Data Source Manager button or press Ctrl+L.
  2. Select the XYZ tab.
  3. Click New.
  4. Enter a name such as Google Maps Roadmap.
  5. Paste the URL into the URL field.
  6. Set Min. Zoom Level to 0 and Max. Zoom Level to 19.
  7. Leave the other fields at their defaults unless the service requires them, then click OK.

The connection should now be listed under Browser ► XYZ Tiles. Add it to the project by double-clicking it, right-clicking it and selecting Add Layer to Project, or dragging it onto the map canvas.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Add Google Maps for one session only

If you do not want to save a connection in your QGIS user profile:

  1. Open Data Source Manager ► XYZ.
  2. Edit the Connection Details fields directly.
  3. Leave the connection name as Custom.
  4. Click Add.

QGIS adds the result as XYZ Layer by default. This is useful for testing a URL before creating a permanent connection.

Method 2: Add a standard basemap

QGIS includes an XYZ Tiles provider, and some installations include ready-to-use services such as OpenStreetMap. Default entries can depend on the QGIS version and user profile. QGIS does not guarantee that Google Maps is preinstalled as an XYZ connection.

Use OpenStreetMap if it is already listed

  1. Open the Browser panel. If it is not visible, enable it through View ► Panels ► Browser Panel.
  2. Expand XYZ Tiles.
  3. Double-click OpenStreetMap, if it is present.

You can also right-click the entry and choose Add Layer to Project, or drag it to the canvas.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Create an OpenStreetMap connection manually

For a manually configured OpenStreetMap raster connection, use https://tile.openstreetmap.org/{z}/{x}/{y}.png

Give it a descriptive name, such as OpenStreetMap Standard. Use a zoom range appropriate for the service—for example, 0 through 19—and follow the provider’s usage and attribution requirements.

XYZ connection fields explained

Field What it does
Name The label QGIS displays in the XYZ Tiles list.
URL The tile template containing {z}, {x}, and {y}.
Authentication configuration Uses a QGIS authentication configuration when the service requires credentials.
Min. Zoom level The lowest zoom level at which QGIS requests tiles.
Max. Zoom level The highest zoom level at which QGIS requests tiles.
Referer Sends a referring-page value to services that require one.
Tile Resolution Controls how QGIS interprets tile scale: Unknown, Standard (256×256 / 96 DPI), or High (512×512 / 192 DPI).
Interpretation Normally leave this at Default. MapTiler Terrain RGB and Terrarium Terrain RGB decode RGB elevation tiles into a single-band floating-point raster.

For an ordinary photographic or cartographic basemap, use Default interpretation. The terrain-RGB options are not alternatives for satellite imagery or road maps.

Adjust the basemap in a QGIS project

Put the basemap below your data

In the Layers panel, drag the XYZ layer below vector layers, labels, boundaries, and analysis outputs. If the basemap is above an opaque polygon layer, it may appear to disappear even though it is loading correctly.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Set the project CRS

Web tile services normally use the Web Mercator tiling scheme, commonly identified by EPSG:3857. QGIS can reproject the displayed layer into the project CRS, but that does not change the tile service’s native pyramid or remove Web Mercator distortion.

For web-map alignment, using a Web Mercator project can avoid unnecessary reprojection. For measurement or analysis, use an appropriate local projected CRS and treat the web basemap as visual context rather than as a survey-grade data source.

Control visibility by scale

To prevent a detailed basemap from loading at unsuitable scales, right-click the layer, select Properties, and use the layer’s scale-based visibility settings. The connection’s minimum and maximum zoom values also limit which tile levels QGIS can request.

Google Maps URL versus the Google Maps Platform Map Tiles API

These are easy to confuse. The mt1.google.com/vt URL above is the URL shown in the QGIS manual as a Google Maps XYZ example. It is not the documented request format for Google’s current Google Maps Platform Map Tiles API.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The Map Tiles API requires:

  • Billing enabled on the Google Cloud project.
  • An API key or OAuth token for API or SDK requests.
  • Compliance with Google’s request, attribution, quota, and content-use policies.

A basic QGIS XYZ connection does not automatically implement the Map Tiles API workflow. In particular, it does not automatically handle the API’s session-token, viewport-information, attribution, quota, and billing process.

Google currently documents limits including a maximum of 6,000 2D Tile queries per project per minute and 15,000 2D Tile queries per project per day. When a project reaches its quota, requests can stop responding. Source: Google Maps Platform usage and billing.

Attribution and exporting maps

Rendering a Google tile in QGIS does not remove the provider’s terms. Google requires clear attribution when Google Maps Platform content is displayed. For new implementations, Google’s guidance uses Google Maps, rather than only Google. The Google Maps logo should be used where possible; text is acceptable where space is limited.

Some imagery also requires data-provider attribution, for example a line such as Map data: Google, Maxar Technologies. The exact attribution comes from the applicable Google service and viewport information. Third-party attribution must remain distinguishable and must not cover Google’s attribution.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

QGIS’s XYZ fields do not automatically supply or guarantee the required attribution metadata. Before producing a map layout, screenshot, PDF, or printed output, check the provider’s current terms and make sure the required notices remain visible and unobscured. Source: Google Maps Platform Map Tiles API policies.

Do not assume that tiles can be downloaded, cached indefinitely, indexed, extracted, or used offline. Google’s current Map Tiles API policy restricts pre-fetching, storing, caching, geodata extraction, resale, and offline use except where an applicable Google agreement permits it.

Save and move XYZ connections

To back up or transfer connection definitions:

  1. Open Data Source Manager ► XYZ, or right-click XYZ Tiles in the Browser panel.
  2. Choose Save Connections.
  3. Save the XML file.
  4. On another QGIS installation, use Load Connections from the same XYZ interface.

QGIS stores these definitions in XML using a <qgsXYZTilesConnections> root and <xyztiles> entries. A typical connection includes the URL, minimum and maximum zoom, tile pixel ratio, name, and authentication and referer fields. Treat exported connection files as configuration data. Do not share them publicly if they contain credentials or references to a private service.

Troubleshoot a blank or broken basemap

Symptom Likely cause and fix
XYZ Tiles is missing Enable View ► Panels ► Browser Panel.
“Add XYZ Layer…” is missing Use Layer ► Add Layer ► Add XYZ Layer…, the Open Data Source Manager button, or Ctrl+L.
Tiles stop at a particular scale Check Max. Zoom level. A value that is too low prevents requests at closer scales.
Tiles are blank at every scale Check the URL, network access, provider availability, and whether the service requires authentication or a referer.
Browser works but QGIS does not A browser may use cookies, redirects, JavaScript, or special headers. QGIS requests the XYZ template directly and exposes only the documented connection fields.
Layer is misaligned Check the project CRS and confirm that the URL uses the provider’s correct XYZ order and tiling scheme.
Tiles are sharp or blurry Try the appropriate Tile Resolution setting. Standard is 256×256 at 96 DPI; High is 512×512 at 192 DPI.
Google stops responding after heavy use Check billing, authentication, quotas, and Google’s current API terms. Do not treat repeated failures as a QGIS rendering problem automatically.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Should you install QuickMapServices?

Not for a basic XYZ connection. QGIS already includes the XYZ Tiles provider. A plugin may offer a catalog or shortcuts to additional services, but it does not bypass a provider’s authentication, billing, attribution, quota, or licensing requirements.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

FAQ

Can I add Google Maps to QGIS without QuickMapServices?

Yes. Use the built-in XYZ provider through Layer ► Add Layer ► Add XYZ Layer…, select XYZ, and create a connection using the documented Google Maps example URL. A plugin is not required.

What is the Google Maps XYZ URL for QGIS?

The QGIS documentation gives https://mt1.google.com/vt/lyrs=m&x={x}&y={y}&z={z}, with minimum zoom 0 and maximum zoom 19. This is an XYZ example, not automatically a compliant Google Maps Platform Map Tiles API integration.

Why are my Google tiles blank in QGIS?

Check the URL placeholders, zoom range, network connection, authentication, referer requirements, provider availability, and Google quotas. A URL that works in a browser may depend on cookies, redirects, JavaScript, or headers that a direct XYZ request does not provide.

Can I export a QGIS map containing Google tiles for offline use?

Do not assume so. Google’s current Map Tiles API policy restricts pre-fetching, storage, caching, extraction, and offline use except where an applicable agreement permits it. Check the terms for the specific Google service before exporting or distributing the result.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How do I add a local XYZ tile directory?

Use a file URL such as file:///local_path/{z}/{x}/{y}.png in an XYZ connection. The directory must follow the provider’s expected zoom, X, and Y tile structure.

How do I save an XYZ connection for another computer?

Use Save Connections from the XYZ tab in Data Source Manager or from the XYZ Tiles context menu in the Browser panel. On the other computer, use Load Connections.

The Bottom Line

For most QGIS projects, the workflow is simple: open Layer ► Add Layer ► Add XYZ Layer…, select XYZ, enter a provider’s URL template, set sensible zoom limits, and add the connection from Browser ► XYZ Tiles. OpenStreetMap is a straightforward general-purpose basemap; the documented Google URL can render a Google road map, but it should not be confused with Google’s authenticated Map Tiles API. Keep attribution visible, check usage restrictions before caching or exporting, and use the QGIS LTR when stability matters more than new features.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.