Speeding up Overpass Turbo query with user exception

Hello,
I have this Overpass Turbo query that keeps running into timeout when I apply it to larger chunks of Europe:

[out:json];
// gather results
(
  (
  nwr["site_type"="megalith"](newer:"{{date:10days}}")({{bbox}}); 
  nwr["archaeological_site"="megalith"](newer:"{{date:10days}}")({{bbox}});
  ); 
 
 -
  (
  nwr(user:"user1")({{bbox}});
  nwr(user:"user2")({{bbox}});
  nwr(user:"user3")({{bbox}});
  nwr(user:"user4")({{bbox}});    
  );  
);
// print results
out body;
>;
out skel qt;

Is there any way I can speed this (or such) queries up by code tweaking or the like?

Hello, it all depends on how serious the problem you have with the speed of work.
As an option, I can suggest writing

out center;

instead of

, it seems to me that this can speed up the work if you need to get a list of POIs without geometry.

Try something like the following instead:

[out:json][bbox:{{bbox}}];

(
  nwr["site_type"="megalith"](newer:"{{date:10days}}")(if:user() != "user1" && user() != "user2"); 
  nwr["archaeological_site"="megalith"](newer:"{{date:10days}}")(if:user() != "user1" && user() != "user2"); 
); 
 

out body;
>;
out skel qt;

Another option would be to split this query a bit like in:

[out:json][bbox:{{bbox}}];

(
  nwr["site_type"="megalith"];
  nwr["archaeological_site"="megalith"];
); 
nwr._(newer:"{{date:10days}}")(if:user() != "chris66" && user() != "geozeisig" && user() != "b-unicycling"); 
 

out body;
>;
out skel qt;

Thank you!
I could not see a difference, though … possibly, because the objects of this query are manly single nodes.

Thank you , @mmd, this did it!
And both variants seem to be equally quick.