[Arduino UNO]Receive Serial Data from multiple sources
This answer summarizes the possibilities:

1) HardwareSerial is always best.  You are using that for WiFi.

2) AltSoftSerial is the best software serial library, but it requires pins 8 &amp; 9.  Very efficient and non-blocking!  Strongly recommended for the GPS connection.

3) NeoSWSerial is next best, but it supports only 9600, 19200 and 38400.  It is non-blocking on receive, so it could be used for the GPS connection.

4) SoftwareSerial is the worst.  :P  Not suitable for the GPS connection, as you have discovered.

I'll also mention my GPS library, NeoGPS.  It is smaller and faster than other libraries, and there are examples that show how to make it run during the RX character interrupt, saving even more time.  It can also be configured for just the messages and fields that you actually use, saving RAM, program space and execution time.