Q:

Projection Error with Google Maps Basemap

I have a shapefile of building lots in Manaus, Brazil, that I have re-projected into the WGS84 (EPSG:4326) CRS using the "project" tool in ArcGIS. I am now working in QGIS, and am trying to add the Google Maps XYZ Tile to this layer. However, it appears that these two layers are not projecting properly:

How can I transform the CRS to make the projections match? 
My friend was able to fix the problem in ArcGIS by changing the properties of the data frame - is there an analogous operation in QGIS?

A:

I would refer you to “Chapter 5 of Learning Geospatial Analysis with Python (Joel Lawhead)”. It's an error of a global projection system. Remember that because of the geoid, no measurement could be correct. Especially, when it wants to map the world using a single datum or ellipsoid.
It's not a problem with CRS or something. Google Earth or any other service that uses any kind of global projection system has up to 15 meters of error. I think that your shapefile had been created by the survey specialists in a local coordinate system before they converted it into something more conventional.
You have to move the entire shapefile regarding a reference point on the online map service. But remember that your correct coordinates will be falsified.

